Data processing systems and methods for transmitting and modifying data via a smart data cable

ABSTRACT

Various embodiments are described herein that relate to data transmission system and methods that may be implemented in a system configured between a source device and a destination device. Data generated at the source device may be received at the data transmission system and processed to determine appropriate modifications. Modified data may then be transmitted to the destination device. In the event that the data transmission system is unable to process data, the system transmits the data directly to the recipient device to ensure continued operation of the source and destination devices. The data transmission system is capable of converting any form of signal into USB and/or UART signals for processing.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/313,231, filed May 6, 2021, which is a continuation-in-part of U.S.patent application Ser. No. 17/092,112, filed Nov. 6, 2020, now U.S.Pat. No. 11,126,991, issued Sep. 21, 2021, which is a continuation ofPCT Patent Application No. PCT/US2017/040288, filed Jun. 30, 2017, andclaims priority to U.S. Provisional Patent Application Ser. No.62/357,319, filed Jun. 30, 2016, U.S. Provisional Patent ApplicationSer. No. 62/361,966, filed Jul. 13, 2016, and U.S. Provisional PatentApplication Ser. No. 62/361,974, filed Jul. 13, 2016. The disclosures ofeach of these applications are hereby incorporated herein by referencein its entirety.

FIELD OF THE INVENTION

Various embodiments concern smart data cables that are connected toother devices or networks and, more specifically, smart data cables forpoint-of-sale systems that enable merchants to accept mobile paymentsfrom customers and augment point of sale data.

BACKGROUND

There are approximately hundreds of thousands of bars and restaurants inthe United States generating billions in sales each year. With theprevalence of Internet, a large number of consumers have migrated atleast a part of their conventional shopping (e.g., for consumerproducts) from traditional, physical shops into online stores.Henceforth, many consumers have begun moving away from conventionalpayment processes when completing transactions (e.g., online paymenttransactions). In light of this, a number of payment processing systemsare now available for processing commercial transactions initiated orcompleted online (e.g., through websites and/or using mobile devices).However, many customers are unable to enjoy the same kind of conveniencethat they enjoy from shopping online when they visit these bars andrestaurants in person because many bars and restaurants are unable toaccept mobile payments because of their continued use of traditional POSequipment. While there are ongoing efforts to upgrade the traditionalpoint-of-sale (POS) systems with “smart” POS systems, such as those thatcan receive mobile payments and/or send receipts electronically tocustomers, this process is expensive and time consuming in terms ofequipment upgrades and employee education. It is well known that thefood service industry has very slim profit margins, therefore many barsand restaurants are slow to invest in upgraded equipment and additionalemployee training. Many other types of brick-and-mortar businesses alsocontinue to rely on traditional POS systems for a variety of reasons.

SUMMARY

A data transmission system, according to various embodiments, may beconfigured to modify data transmitted from a source device to adestination device, the data transmission system comprising: a firstadapter comprising one or more first connectors and one or more firstserial communications outputs, wherein the first adapter is configuredto: receive a first signal comprising initial data from the sourcedevice at the one or more first connectors; and transmit a second signalcomprising the initial data via the one or more serial communicationsoutputs to a first multiplexer; the first multiplexer configured to:receive the second signal from the first adapter; determine whether totransmit the second signal to a second multiplexer; and at leastpartially in response to determining to transmit the second signal tothe second multiplexer, transmit the second signal to the secondmultiplexer; the second multiplexer configured to: receive the secondsignal from the first multiplexer; transmit the second signal to aprocessing component; receive a third signal from the processingcomponent; and transmit the third signal to a second adapter; theprocessing component comprising one or more processors, data storage,one or more first serial communications inputs, and one or more secondserial communications outputs, wherein the processing component isconfigured to: receive the second signal from the second multiplexer atthe one or more first serial communications inputs; extract the initialdata from the second signal; determine one or more modifications of theinitial data based at least in part on the initial data; generatemodified data based at least in part on the one or more modifications;generate the third signal comprising the modified data; and transmit thethird signal via the one or more second serial communications outputs tothe second multiplexer; and the second adapter comprising one or moresecond connectors and one or more second serial communications inputs,wherein the second adapter is configured to: receive the third signalcomprising the modified data from the second multiplexer at the one ormore second serial communications inputs; and transmit a fourth signalcomprising the modified data via the one or more second connectors tothe destination device.

In particular embodiments, the modified data comprises the initial data,and the processing component is configured to generate the modified databy augmenting the initial data with additional data. In particularembodiments, the processing component is configured to generate themodified data by altering the initial data. In particular embodiments,none of the one or more first connectors of the first adapter are auniversal asynchronous receiver-transmitter (UART) connector or auniversal serial bus (USB) connector; each of the one or more firstserial communications outputs is a UART output or a USB output; and thefirst adapter is further configured to convert the first signal to thesecond signal, wherein the second signal is one of a UART signal and aUSB signal. In particular embodiments, the one or more first connectorsof the first adapter comprise a universal serial bus (USB) connector;the first adapter is further configured to relay the first signal fromthe USB connector to one or more of the one or more serialcommunications outputs. In particular embodiments, the one or more firstconnectors of the first adapter comprise a first single universal serialbus (USB) connector; and the one or more second connectors of the secondadapter comprise a second single USB connector. In particularembodiments, the one or more first connectors of the first adaptercomprise a first single serial communications connector that is not auniversal serial bus (USB) connector; and the one or more secondconnectors of the second adapter comprise a second single serialcommunications connector that is not a USB connector.

A method of operating a data transmission system, according to variousembodiments, may include: receiving, at one or more first connectors ofa first adapter, a first signal from a source device, the first signalcomprising initial data; transmitting, from one or more serialcommunications outputs of the first adapter, a second signal to a firstmultiplexer, the second signal comprising the initial data; determining,by the first multiplexer, to transmit the second signal to one of: asecond multiplexer for transmission to a processing component, whereinthe processing component is configured to generate modified data basedat least in part on the initial data; and a second adapter fortransmission to a destination device; at least partially in response todetermining to transmit the second signal to the second adapter fortransmission to the destination device, transmitting the second signalfrom the first multiplexer to one or more serial communications inputsof the second adapter; receiving, at the one or more serialcommunications inputs of the second adapter, the second signal;transmitting, from one or more second connectors of the second adapter,a third signal to the destination device, the third signal comprisingthe initial data.

In particular embodiments, determining, by the first multiplexer, totransmit the second signal to one of the second multiplexer and thesecond adapter comprises: determining, at the first multiplexer, whethera detected level of power meets a threshold level of power; and at leastpartially in response to determining that the detected level of powerdoes not meet the threshold level of power, determining to transmit thesecond signal to the second adapter for transmission to the destinationdevice. In particular embodiments, determining, by the firstmultiplexer, to transmit the second signal to one of the secondmultiplexer and the second adapter comprises: determining, at the firstmultiplexer, whether a detected level of power meets a threshold levelof power; and at least partially in response to determining that thedetected level of power meets the threshold level of power, determiningto transmit the second signal to the second multiplexer for transmissionto the processing component. In particular embodiments, determining, bythe first multiplexer, to transmit the second signal to one of thesecond multiplexer and the second adapter comprises receiving a signalfrom the processing component. In particular embodiments, the signalfrom the processing component comprises an instruction to transmit thesecond signal to the second multiplexer. In particular embodiments, thesignal from the processing component comprises an instruction totransmit the second signal to the second adapter. In particularembodiments, the first signal is a first communications standard signal;the second signal is a second communications standard signal; the firstcommunications standard is different than the second communicationsstandard; and transmitting, from one or more serial communicationsoutputs of the first adapter, the second signal to a first multiplexercomprises converting, at the first adapter, the first communicationsstandard signal to the second communications standard signal.

A data transmission system configured to modify data transmitted from asource device to a destination device, according to various embodiments,may include: a first adapter comprising one or more first connectors andone or more first serial communications outputs, wherein the firstadapter is configured to: receive a first signal comprising initial datafrom the source device at the one or more first connectors; and transmita second signal comprising the initial data via the one or more serialcommunications outputs to a first multiplexer; the first multiplexerconfigured to: receive the second signal from the first adapter;determine to transmit the second signal to one of a second multiplexerand a second adapter; at least partially in response to determining totransmit the second signal to the second multiplexer, transmit thesecond signal to the second multiplexer; and at least partially inresponse to determining to transmit the second signal to the secondadapter, transmit the second signal to the second adapter; the secondmultiplexer configured to: receive the second signal from the firstmultiplexer; transmit the second signal to a processing component;receive a third signal from the processing component; and transmit thethird signal to the second adapter; the processing component comprisingone or more processors, data storage, one or more first serialcommunications inputs, and one or more second serial communicationsoutputs, wherein the processing component is configured to: receive thesecond signal from the second multiplexer at the one or more firstserial communications inputs; extract the initial data from the secondsignal; determine one or more modifications of the initial data based atleast in part on the initial data; generate modified data based at leastin part on the one or more modifications; generate the third signalcomprising the modified data; and transmit the third signal via the oneor more second serial communications outputs to the second multiplexer;and the second adapter comprising one or more second connectors and oneor more second serial communications inputs, wherein the first adapteris configured to: receive the third signal comprising the modified datafrom the second multiplexer at the one or more second serialcommunications inputs; receive the second signal comprising the initialdata from the first multiplexer at the one or more second serialcommunications inputs; and transmit a fourth signal via the one or moresecond connectors to the destination device.

In particular embodiments, the modified data comprises the initial data;and the processing component is configured to generate the modified databy augmenting the initial data with additional data comprising one ormore of a coupon and a quick response (QR) code. In particularembodiments, the processing component further comprises one or morewireless communications components. In particular embodiments, theprocessing component is configured to determine the one or moremodifications of the initial data based at least in part on the initialdata by: transmitting, via the one or more wireless communicationscomponents, at least a subset of the initial data to a remote system;receiving, via the one or more wireless communications components,responsive data from the remote system; and determining the one or moremodifications of the initial data based at least in part on theresponsive data. In particular embodiments, the one or more firstconnectors of the first adapter comprise a first single universal serialbus (USB) connector; and the one or more second connectors of the secondadapter comprise a second single USB connector. In particularembodiments, the one or more first connectors of the first adaptercomprise a first single serial communications connector that is not auniversal serial bus (USB) connector; and the one or more secondconnectors of the second adapter comprise a second single serialcommunications connector that is not a USB connector. In particularembodiments, the first multiplexer and the second multiplexer areconfigured in a single multiplexer component.

A data transmission system configured to transmit data received from asource device to a remote system, according to various embodiments, mayinclude: a first adapter comprising one or more first connectors and oneor more first serial communications outputs, wherein the first adapteris configured to: receive a first signal comprising initial data fromthe source device at the one or more first connectors; and transmit asecond signal comprising the initial data via the one or more serialcommunications outputs to a first multiplexer; the first multiplexerconfigured to: receive the second signal from the first adapter;determine whether to transmit the second signal to a second multiplexer;and at least partially in response to determining to transmit the secondsignal to the second multiplexer, transmit the second signal to thesecond multiplexer; the second multiplexer configured to: receive thesecond signal from the first multiplexer; and transmit the second signalto a processing component; and the processing component comprising oneor more processors, data storage, and one or more first serialcommunications inputs, wherein the processing component is configuredto: receive the second signal from the second multiplexer at the one ormore first serial communications inputs; extract the initial data fromthe second signal; generate remote system data based at least in part onthe initial data; generate a third signal comprising the remote systemdata; and transmit the third signal to one or more wirelesscommunications components; and the one or more wireless communicationscomponents comprising one or more wireless communications antennas andone or more wireless communications processors, wherein the one or morewireless communications components are configured to: receive the thirdsignal from the processing component; and transmit the third signal toone or more remote systems.

In particular embodiments, the data transmission system furthercomprises a second adapter comprising one or more second connectors andone or more second serial communications inputs; the processingcomponent further comprises one or more second serial communicationsoutputs; the processing component is further configured to transmit thethird signal via the one or more second serial communications outputs tothe second multiplexer; the second multiplexer is further configured to:receive the third signal from the processing component; and transmit thethird signal to the second adapter; and the second adapter is configuredto: receive the third signal comprising the remote system data from thesecond multiplexer at the one or more second serial communicationsinputs; and transmit a fourth signal comprising the remote system datavia the one or more second connectors to a destination device. Inparticular embodiments, the processing component is configured togenerate the remote system data by augmenting the initial data withadditional data. In particular embodiments, the additional datacomprises one or more identifiers; each of the one or more identifiersis associated with one or more respective pieces of the initial data;and one or more of the one or more remote systems is configured to storethe initial data in a data structure based on the one or moreidentifiers. In particular embodiments, one or more of the one or moreremote systems are configured to provide an application programminginterface that provides access to the remote system data. In particularembodiments, one or more of the one or more remote systems are selectedfrom a group consisting of: (a) a data archiving system; (b) a paymentprocessing system; (c) a business management system; and (d) a consumerdata collection system. In particular embodiments, the initial datacomprises sales transaction data.

A method of operating a data transmission system, according to variousembodiments, may include: receiving, at one or more first connectors ofa first adapter, a first signal from a source device, wherein the firstsignal is directed to a printer, and wherein the first signal comprisesinitial data; transmitting, from one or more serial communicationsoutputs of the first adapter, a second signal to a first multiplexer,the second signal comprising the initial data; determining, by the firstmultiplexer, to transmit the second signal to one of: a secondmultiplexer for transmission to a processing component, wherein theprocessing component is configured to generate modified data based atleast in part on the initial data; and a second adapter for transmissionto a destination device; at least partially in response to determiningto transmit the second signal to the second multiplexer for transmissionto the processing component, transmitting the second signal from thefirst multiplexer to the processing component; receiving, at theprocessing component, the second signal from the first multiplexer;extracting, at the processing component, the initial data from thesecond signal; generating, at the processing component, a request forpayment data based at least in part on the initial data; transmitting,from the processing component via one or more wireless communicationscomponents, the request for payment data to a payment processing system;receiving, at the processing component via the one or more wirelesscommunications components, payment data from the payment processingsystem; generating, at the processing component, a third signal based atleast in part on the payment data; transmitting, from the processingcomponent, the third signal to the second multiplexer; transmitting,from the second multiplexer, the third signal to one or more serialcommunications inputs of a second adapter; receiving, at the one or moreserial communications inputs of the second adapter, the third signal;and transmitting, from one or more second connectors of the secondadapter, a fourth signal to the printer, the fourth signal based atleast in part on the third signal.

In particular embodiments, generating, at the processing component, thethird signal based at least in part on the payment data comprisesgenerating, at the processing component, a scannable code; and the thirdsignal comprises the scannable code. In particular embodiments, themethod further comprises transmitting, from the processing component viathe one or more wireless communications components, the payment data toa remote system. In particular embodiments, transmitting the paymentdata to the remote system comprises: generating, at the processingcomponent, remote system data associating the payment data with theinitial data; and transmitting, from the processing component via theone or more wireless communications components, the remote system datato the remote system. In particular embodiments, the method furthercomprises generating, at the processing component, based at least inpart on the initial data, remote system data; and transmitting, from theprocessing component via the one or more wireless communicationscomponents, the remote system data to a remote system. In particularembodiments, the initial data comprises transaction data. In particularembodiments, the third signal is further based at least in part on theinitial data.

A method of operating a mobile payment system, according to variousembodiments, may include: receiving, at a first data transmission systemvia a first adapter configured at the first data transmission system, afirst signal from a source device, wherein the first signal is directedto a printer, and wherein the first signal comprises transaction data;generating, at the first data transmission system, a request for paymentdata based at least in part on the transaction data; transmitting, fromthe first data transmission system via one or more wirelesscommunications components configured at the first data transmissionsystem, the request for payment data to a payment processing system;receiving, at a second data transmission system via one or more wirelesscommunications components configured at the second data transmissionsystem, payment data from the payment processing system, wherein thesecond data transmission system is distinct from the first datatransmission system, and wherein the payment data comprises a subset ofthe transaction data; generating, at the second data transmissionsystem, a second signal based at least in part on the payment data; andtransmitting, from the second data transmission system via a secondadapter configured at the second data transmission system, the secondsignal to a destination device.

In particular embodiments, the source device is a point-of-sale deviceand the destination device is the printer. In particular embodiments,the method further comprises: generating, at the first data transmissionsystem, one or more data structure identifiers for each of one or morepieces of the transaction data; generating, at the first datatransmission system, remote system data based at least in part on the onthe transaction data and the one or more data structure identifiers foreach of the one or more pieces of the transaction data; andtransmitting, from the first data transmission system via the one ormore wireless communications components configured at the first datatransmission system, the remote system data to a remote system. Inparticular embodiments, one or more of the one or more pieces of thetransaction data comprise data indicating a geographical locationassociated with the transaction data. In particular embodiments, one ormore of the one or more pieces of the transaction data comprise dataindicating a quantity of a particular item associated with thetransaction data. In particular embodiments, one or more of the one ormore pieces of the transaction data is selected from a group consistingof: (a) a total sales amount; (b) an amount of sales tax; (c) a subsetof the total sales amount associated with a particular type of item; (d)an employee associated with a transaction; and (e) a tip amount.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and characteristics will become apparent tothose skilled in the art from a study of the Detailed Description inconjunction with the appended claims and drawings, all of which form apart of this specification. While the accompanying drawings includeillustrations of various embodiments, the drawings are not intended tolimit the claimed subject matter.

FIG. 1 is a generalized illustration of a network environment thatincludes a point-of-sale system connected to a receipt printer by asmart data cable and a network-accessible server.

FIG. 2 is another generalized illustration of a network environment thatincludes a point-of-sale system connected to a receipt printer by asmart data cable.

FIG. 3 depicts how a smart data cable processes data passed between apoint-of-sale system and a receipt printer.

FIG. 4 depicts a flow diagram of a process for processing a transactioncompleted using a messaging application.

FIG. 5 is a block diagram illustrating an example of a computer systemin which at least some operations described herein can be implemented.

FIG. 6 is a block diagram illustrating an exemplary smart data cablesystem according to various embodiments.

FIG. 7 is an illustration of an exemplary smart data cable systemaccording to various embodiments.

FIG. 8 is an illustration of another exemplary smart data cable systemaccording to various embodiments.

FIG. 9 is a block diagram of an exemplary process for modifying dataaccording to various embodiments.

FIG. 10 is a block diagram of an exemplary system that may facilitatethe interoperation of one or more data transmission systems and one ormore remote systems.

FIG. 11 is a block diagram of an exemplary process for remote datastorage according to various embodiments.

FIG. 12 is a block diagram of an exemplary process for facilitatingpayment using a remote system according to various embodiments.

FIG. 13 is an illustration of an exemplary receipt according to variousembodiments.

FIGS. 14-16 are illustrations of various exemplary user interfacesaccording to various embodiments.

DETAILED DESCRIPTION Overview

Various embodiments are described herein that relate to datatransmission systems and data cables configured with components that areconnected to electronic devices and/or networks via one or more wirelessprotocols, such as Bluetooth, near field communication (NFC), Wi-Fi,3G/4G/5G, etc. These “smart” data cables may be able to operateinteractively and autonomously with the electronic devices to which thesmart data cables are connected.

Various smart data cables described herein are designed to replace theexisting data cable between a merchant's point of sale system and thereceipt printer. When transaction data is transmitted to the receiptprinter from the point-of-sale system, the smart data cable can copycertain elements from the transaction data (e.g., a respectivedescription and price of each item ordered, as part of a particulartransaction, at a restaurant or other business) and transmit the copieddata to a remote computing system, such as a web server or cloud-basedstorage, for processing of various types. Such a technique may, forexample, enable merchants to more readily accept mobile payments fromcustomers and/or perform other activities involving remote systems usinglegacy equipment.

In various embodiments, the smart data cable may transmit item and/orpricing information from a customer's order at a restaurant, or otherbusiness, to a remote computing system that may allow the customer topay for the order via a portable computing device associated with thecustomer (e.g., the customer's smartphone, tablet computing device, orlaptop computer). In a particular embodiment, the smart data cableand/or remote computing system may facilitate this payment process byfacilitating printing, on a paper receipt associated with thetransaction, a unique computer-readable indicium (e.g., a bar code, suchas a QR code, or an alphanumeric code) that is associated with thetransaction. To pay for the order, the customer may use their portablecomputing device to scan the computer-readable indicia (e.g., QR code),which may facilitate payment for the order via the customer's portablecomputing device (e.g., via a suitable mobile payment service and/ordigital wallet service such as Apple Pay, Google Pay, PayPal, or via asuitable payment card, such as a credit or debit card). In a particularembodiment, the QR code may be configured to, upon being scanned, directa browser associated with the customer's portable computing device to anonline payment gateway that may be used to facilitate payment for theorder.

As discussed in greater detail below, having one or more smart cablestransmit sales transaction data (e.g., a description and price of eachitem being sold as part of each transaction) to a remote server may beadvantageous in ways other than facilitating payment for thetransaction. For example, as discussed in greater detail below, thisfunctionality may allow transaction data for one or more businesses tobe stored in a searchable data structure for later access. This data maythen be accessed (e.g., via a suitable API) for use in, for example: (1)documenting compliance with one or more laws, such as tax laws; (2)analyzing the sales transaction data for strategic purposes (e.g.,determining, for a particular buisiness for a particular time period,information regarding, for example: (a) gross sales; (b) how many newcustomers purchased items at the business; (c) the average tip left bycustomers in general or by a particular customer; (d) top itemspurchased by customers; and/or (e) top payment methods used bycustomers; (3) tracking customer behavior in one or more particulargeographic areas (which may be used, for example, for purposes oftargeted marketing, commercial real estate location assessments, and/orlogistics (e.g., food delivery) analysis and planning; and/or (4)tracking and/or managing inventory (e.g., automatically reorderinginventory based on data from the smart data cable(s) or using multipledifferent smart data cables in different locations to track the sameitem at each stage of a supply chain).

In various embodiments, a smart data cable may be configured between aPOS device and a printer, as described in more detail herein (see, e.g.,FIGS. 1, 2, 6, 10 , and related descriptions). The POS device maytransmit a signal containing data (e.g., transaction data) intended forthe printer to the smart data cable. In response to receiving thissignal, the smart data cable may process the received data and/orperform one or more other functions before, or instead of, providing thereceived data to the printer. For example, the smart data cable maymodify the data received from the POS device by inserting additionaldata into the received data and/or changing the received data beforetransmitting the resultant data to the printer. Alternatively, or inaddition, the smart data cable may transmit the received data and/or amodified version of the received data to one or more remote systems(e.g., for storage, payment processing, etc.) using one or more wirelesscommunications components configured at the smart data cable. Inparticular examples, the smart data cable may also receive responsivedata from such one or more remote systems that the smart data cable mayuse to generate data for the printer. The received responsive data maybe data related to obtaining a payment for a transaction, such as dataallowing the generation of a computer-readable indicia (such as a QRcode or other bar code or other computer-readable indicia), interactionwith a chat bot, etc. As noted above, using this received responsivedata, the receipt generated by the printer may allow a customer tointeract with a mobile payment system and provide payment for thetransaction associated with the data that was received from the POSdevice at the smart data cable.

In various embodiments, a smart data cable may interact with a remotesystem and/or another smart data cable to facilitate communicationsbetween physically separate locations as described in more detail herein(see, e.g., FIGS. 10, 11, 12 , and related descriptions). For example,there are currently many businesses, such as food delivery businesses,that take orders for items at a first location but fulfill such ordersat a second location that is physically distinct from the first location(e.g., at a ghost kitchen). In particular embodiments, an order forvarious items may be received at a first location configured with a POSdevice and a smart data cable. The POS device may transmit order data tothe first location's smart data cable, which may then determine anappropriate remote system (e.g., an order processing system and/oranother smart data cable) to which to transmit the order data. The firstlocation's smart data cable can then transmit the order data to theappropriate destination system for processing using one or more wirelesscommunications components, thus allowing the order to be fulfilled at adifferent location. In particular embodiments, one or more remotesystems that receive order data from a first smart data cable at a firstlocation may transmit the order data (with or without modification) to asecond smart data cable located at a second location (e.g., fortransmission to a printer or other device at the second location). Suchone or more remote systems may determine the appropriate destinationlocation and smart data cable based on the order or data and/or othercriteria.

Such one or more remote systems that communicate with one or more smartdata cable systems as described herein may perform a variety ofprocessing and/or other functions that can greatly enhance thecapabilities of legacy equipment. For example, and as described in moredetail herein, a remote system may receive transaction data from a smartdata cable and interact with a payment processing system to obtainpayment information that the remote system may then provide to the smartdata cable (or another smart data cable or other system) to facilitatereceiving payment from a customer. In other examples, a remote systemmay receive data from a smart data cable that allows the remote systemto perform, or otherwise facilitate (e.g., by transmitting to anothersystem), business-related processing that may not be related toreceiving payments, such as the processing of sales data, shift data,consumer data, inventory data, etc. These and other exemplaryembodiments are described in more detail below.

Mobile Payments Via Chat Bot

In various embodiments, a messaging application may be used tofacilitate mobile payments. For example, when the receipt is brought toa customer, the customer may open a messaging application executing onthe customer's user device (e.g., a mobile phone, tablet, or laptop).The customer can then initiate a chat with a chat bot supported by theweb server. More specifically, the customer can take a picture of thereceipt and post the picture to the chat. After the chat bot receivesthe picture of the receipt, various recognition (e.g., optical characterrecognition) techniques can be performed so that basic information canbe extracted from the picture of the receipt. The web server thencompares the basic information extracted from the picture of the receiptto the elements of transaction data copied by the smart data cable.Alternatively, the smart data cable may inject a QR code into theprinter data that the customer can scan to be taken to the web serverthat supports the chat bot. The QR code may include transactionidentification data that the web server can use to identify thetransaction.

Once a match has been found, the chat bot has access to sufficientinformation (e.g., the amount due and restaurant name) to allow the userto pay for the receipt through a conversational interface presented bythe user device. For example, if the receipt is private (i.e., for asingle customer), the chat bot may ask for the customer's credit cardinformation or for confirmation of the payment amount, tip, etc., if thecustomer has previously conducted transactions using the chat bot.However, if the receipt is shared (i.e., for multiple customers), thechat bot may ask how the receipt should be split between the multiplecustomers. Once the payment information is received from thecustomer(s), the server supporting the chat bot may interact with apayment processing system to complete the transaction. The serversupporting the chat bot may also, or instead, interact with one or moreother systems as described herein to perform other types of processing(e.g., data archiving, business management, consumer data collection,etc.).

Responsive to processing the transaction, the chat bot can sendconfirmation to the customer(s), the merchant, or both. For example, thechat bot may respond to the customer(s) directly (i.e., within theconversational interface) by sending a message that states, “Transactioncompleted. You're all set!” The merchant, meanwhile, can be notified viaa message (e.g., a chat message delivered to an individual associatedwith the merchant, such as a manager) or by sending a notification tothe smart data cable that causes a confirmation to be printed by thereceipt printer.

The embodiments described herein provide numerous, technical advantagesover existing mobile payment solutions. For instance, setup fees may beminimal or non-existent because the smart data cables interface with themerchant's existing infrastructure (e.g., point of sale device).Moreover, the chat bot may be available on a variety of messagingplatforms and other payment apps that are generally available to mobiledevices can be used with the disclosed embodiments, which ensures thatconsumers need not download an additional messaging or paymentapplication that is developed solely for completing particular types oftransactions. Other benefits of using a smart data cable includebusiness incentives (e.g., more streamlined transaction experiences forboth customers and merchants) and customer relation incentives (e.g.,direct customer communication and feedback may be receivable through thechat channel managed by the chat bot).

Various embodiments may be described with reference to particular systemconfigurations (e.g., point of sale systems for restaurants) andnetworks. However, one skilled in the art will recognize that featuresdescribed herein are equally applicable to other system configurations,network types, merchant types, etc. Moreover, the techniques introducedherein can be embodied as special-purpose hardware (e.g., circuitry),programmable circuitry appropriately programmed with software and/orfirmware, or as a combination of special-purpose and programmablecircuitry. Hence, embodiments may include a machine-readable mediumhaving stored thereon instructions which may be used to program acomputer (or some other computing device) to perform a process. Themachine-readable medium may include, but is not limited to, floppydiskettes, optical disks, compact disk read-only memories (CD-ROMs),magneto-optical disks, read-only memories (ROMs), random access memories(RAMs), erasable programmable read-only memories (EPROMs), electricallyerasable programmable read-only memories (EEPROMs), magnetic or opticalcards, flash memory, or other type of media/machine-readable mediumsuitable for storing electronic instructions.

Terminology

Brief definitions of terms, abbreviations, and phrases used throughoutthis application are given below.

Reference in this specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the disclosure. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment, nor are separate or alternative embodimentsmutually exclusive of other embodiments. Moreover, various features aredescribed that may be exhibited by some embodiments and not by others.Similarly, various requirements are described that may be requirementsfor some embodiments but not others.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense, as opposed to anexclusive or exhaustive sense; that is to say, in the sense of“including, but not limited to.” As used herein, the terms “connected,”“coupled,” or any variant thereof, means any connection or coupling,either direct or indirect, between two or more elements; the coupling ofconnection between the elements can be physical, logical, or acombination thereof. For example, two devices may be coupled directly,or via one or more intermediary channels or devices. As another example,devices may be coupled in such a way that information can be passedthere between, while not sharing any physical connection with oneanother. Additionally, the words “herein,” “above,” “below,” and wordsof similar import, when used in this application, shall refer to thisapplication as a whole and not to any particular portions of thisapplication. Where the context permits, words in the DetailedDescription using the singular or plural number may also include theplural or singular number, respectively. The word “or,” in reference toa list of two or more items, covers all of the following interpretationsof the word: any of the items in the list, all of the items in the list,and any combination of the items in the list.

If the specification states a component or feature “may,” “can,”“could,” or “might” be included or have a characteristic, thatparticular component or feature is not required to be included or havethe characteristic.

The term “module” refers broadly to software, hardware, or firmware (orany combination thereof) components. Modules are typically functionalcomponents that can generate useful data or other output using specifiedinput(s). A module may or may not be self-contained. An applicationprogram (also called an “application”) may include one or more modules,or a module can include one or more application programs.

The terminology used in the Detailed Description is intended to beinterpreted in its broadest reasonable manner, even though it is beingused in conjunction with certain examples. The terms used in thisspecification generally have their ordinary meanings in the art, withinthe context of the disclosure, and in the specific context where eachterm is used. For convenience, certain terms may be highlighted, forexample using capitalization, italics, and/or quotation marks. The useof highlighting has no influence on the scope and meaning of a term; thescope and meaning of a term is the same, in the same context, whether ornot it is highlighted. It will be appreciated that same element can bedescribed in more than one way.

Consequently, alternative language and synonyms may be used for any oneor more of the terms discussed herein, and special significance is notto be placed upon whether or not a term is elaborated or discussedherein. Synonyms for certain terms are provided. A recital of one ormore synonyms does not exclude the use of other synonyms. The use ofexamples anywhere in this specification including examples of any termsdiscussed herein is illustrative only and is not intended to furtherlimit the scope and meaning of the disclosure or of any exemplifiedterm. Likewise, the disclosure is not limited to various embodimentsgiven in this specification.

System Topology Overview

FIG. 1 is a generalized illustration of a network environment 100 thatincludes a point-of-sale system 102 connected to a receipt printer 104by a smart data cable 106 and a network-accessible server 108. Together,the smart data cable 106 and the server 108 enable customers to pay forgoods and/or services provided by the merchant associated with thepoint-of-sale system 102 using a mobile messaging application 110, suchas Facebook™ Messenger, SnapChat™, and WhatsApp™. The mobile messagingapplication 110 is executed by the operating system of a user device 110associated with a customer.

The smart data cable 106 (also referred to as a “tapping device”) isconnected to the point-of-sale system 102 and the receipt printer 104,as well as the server 108. The smart data cable 106 may becommunicatively coupled to these components via wired or wirelessconnections. For example, the smart data cable 106 can be physicallyconnected to the point-of-sale system 102 and the receipt printer 104(e.g., via USB or serial ports) and wirelessly connected to the server108 (e.g., via the Internet). Accordingly, the smart data cable 106 canbe connected to one or more local area networks (LANs), wide-areanetworks (WANs), metropolitan area networks (MANs), and/or the Internet.In some embodiments, the smart data cable 106 can include a singlemultiplexed hardware interface to be physically connected to thepoint-of-sale system 102 and the receipt printer 104. The singlemultiplexed hardware interface can support multiple cable-basedconnections (e.g., USB, serial, and/or parallel ports). Additionally, oralternatively, the smart data cable 106 can communicate with thepoint-of-sale system 102 and/or the receipt printer 104 via Bluetooth,NFC, etc. In particular embodiments, the smart data cable 106 may befully integrated into the housing of the receipt printer 104 and/or mayshare one or more components of the receipt printer 104. In otherparticular embodiments, the smart data cable 106 may be fully integratedinto the housing of the point-of-sale system 102 and/or may share one ormore components of the point-of-sale system 102.

When a transaction is initiated at the point-of-sale system 102 (e.g.,by hitting a “print check” button on the point-of-sale system 102), thepoint-of-sale system 102 creates transaction data. The transaction datacan include a manifest of goods and/or services that are purchased, apayment amount, a merchant name, a time and date of the transaction,and/or any other suitable information that would appear on a transactionreceipt for purposes of identifying the details of the transaction. Thetransaction data can then be transmitted from the point-of-sale system102 to the receipt printer 104 via the smart data cable 106, which cancapture certain elements of the transaction data and transmit thosecaptured elements to the server 108. Such a technique enables thecustomer(s) to complete the transaction using a messaging service orapplication, rather than present a payment card to the merchant.

When transaction data is transmitted to the receipt printer 104 from thepoint-of-sale system 102, the smart data cable 106 can copy elements ofthe transaction data and transmits those elements to the server 108. Forexample, the smart data cable 106 may identify and copy informationrequired to process the transaction, such as the payment amount and thecredit card number (which may be used by the server 108 to identify thecustomer).

The server 108 can then process the transaction using the copiedelements of transaction data. For example, the server 108 may browseuser accounts and/or a database of transactions to determine whether thepayment card was used in a previous transaction. If a match is found,the server 108 may prompt the customer to simply confirm the transaction(e.g., by sending the customer a message to be presented by the userdevice 110). However, if no match is found, the server 108 may requestadditional information from the customer. For example, the server 108may support a communications application that asks the customer for thecredit card number, CVV, etc. Such information can be used by the server108 to process the transaction and create an account on behalf of thecustomer. The account may include personal or financial information thatenables future transactions to be more quickly and easily processed. Theserver 108 may also, or instead, interact with a payment processingsystem to obtain payment for the transaction.

Responsive to processing the transaction, the server 108 can send aconfirmation to the customer, the merchant, or both. For example, a chatbot may respond to the customer directly by sending a message via amobile messaging application that states, “Transaction completed. You'reall set!” The merchant can be notified via a message (e.g., a chatmessage delivered to an individual associated with the merchant, such asa manager) or by sending a notification to the smart data cable 106 thatcauses a confirmation to be printed by the receipt printer 104. Oneskilled in the art will recognize that the chat bot can alsocollectively or individually communicate with multiple customersinvolved in a single transaction.

Generally, the presence of the smart data cable 106 is entirelytransparent to the point-of-sale system 102 and the receipt printer 104.That is, the smart data cable 106 may appear to be one or more connecteddevices from the perspective of the point-of-sale device 102. Forinstance, the smart data cable 106 could appear as multiple connecteddevices (e.g., a receipt printer and a card reader) from the perspectiveof the point-of-sale device 102. The receipt printer 104, meanwhile,typically does not recognize any devices upstream in the transactionflow and, thus, may not even acknowledge the presence of the smart datacable 106. Because the smart data cable 106 parses the transaction datato copy certain elements and then passes the unaltered transaction datadownstream to the receipt printer 104, neither point of sale system 102nor the receipt printer 104 may be aware of the smart data cable'spresence. Moreover, the main functionality of the receipt printer 104(e.g., reliably printing receipts) can be guaranteed at any point,regardless of the other functions enabled by the smart data cable 106.Thus, even if the smart data cable 106 fails (e.g., loses networkconnectivity), the merchant can continue to print receipts and completepayment transactions as would conventionally be done (e.g., by swiping apayment card at the point-of-sale device 102).

In some embodiments, the smart data cable 106 can share network serviceswith other devices. For example, the smart data cable 106 could shareWi-Fi and/or Bluetooth connectivity with a customer's user device inorder to allow the customer to utilize mobile payment servicesfacilitated by the smart data cable even if the customer's user deviceis not otherwise connected to a network (e.g., no cell service isavailable). The smart data cable 106 could also share network serviceswith the point-of-sale device 102 and/or the receipt printer 104.

While the user device 110 is depicted as a mobile phone, one skilled inthe art will recognize that other electronics can also be used. Forinstance, the user device 110 can be (or be facilitated by) a tablet,laptop, personal computer, network-connected (“smart”) television, gameconsole (e.g., Sony PlayStation™ or Microsoft Xbox™ game console),network-connected mobile gaming device (e.g., Sony PSP™),television-connected device (e.g., Roku™, Apple TV™, Google Chromecast™,Amazon FireStick™, Android TV™, Blu-ray disc players), anothernetwork-accessible device having an interface (e.g., Apple iPod Touch™,Apple Watch™), etc.

FIG. 2 is another generalized illustration of a network environment 200that includes a point-of-sale system 202 connected to a receipt printer204 by a smart data cable 206. The smart data cable 206 can beseamlessly integrated into the merchant's point of sale environment byreplacing a pre-existing cable that extends between the point-of-salesystem 202 and the receipt printer 204. Note, however, that in someembodiments the smart data cable 206 communicates with the point-of-salesystem 202 and/or the receipt printer 204 via wireless connections and,thus, need not be physically connected to such components. In suchembodiments, the smart data cable 206 may include a wirelesscommunication module that enables communication via Bluetooth, NFC, etc.

The smart data cable 206 typically receives power from either thepoint-of-sale system 202 or the receipt printer 204. However, in someembodiments (e.g., where the smart data cable 206 is wirelessly coupledto both components), the smart data cable 206 may have a physical powerinterface, such as a plug or jack.

As shown here, the smart data cable 206 may be able to connect topoint-of-sale systems and printers of different types, having differentoperating systems, etc. Moreover, the smart data cable 206 may be ableto parse or otherwise process transaction data transmitted from thepoint-of-sale system 202 to the receipt printer 204 regardless of formatand copy elements of the transaction data needed to process thetransaction. The copied elements can be transmitted to a cloud-basedplatform that processes transactions between customers and merchants.Alternatively, the smart data cable 206 may relay the transaction data,in whole or in part, to a platform or other remote system for processingwithout performing parsing of such data. The cloud-based platform may beresponsible for supporting one or more systems that facilitatecommunication with one or more customers using a messaging service(e.g., email) or a messaging application (e.g., Facebook™ Messenger,SnapChat™, WhatsApp™, Slack™, Hipchat™) and enable the one or morecustomers to pay for goods and/or services provided by a merchant usinga conversational interface presented by the user device 210 (e.g., usingone or more interaction applications).

More specifically, when the receipt 212 is brought to a customer, thecustomer may open an interaction application, such as a messagingapplication, executing on the customer's user device 210 (e.g., a mobilephone, tablet, or laptop). The customer can then initiate acommunication interaction, such as a chat with a chat bot, that may bemanaged by the cloud-based platform. For example, the customer can takea picture of the receipt 212 and post the picture to the chat orotherwise upload the picture using the interaction application. Afterthe picture of the receipt is received (e.g., at the cloud-basedplatform), various recognition (e.g., optical character recognition)techniques can be performed so that basic information can be extractedfrom the picture of the receipt 212. The cloud-based platform can thencompare the basic information extracted from the picture of the receipt210 to the elements of transaction data copied by the smart data cable206. The messaging application and/or any other interaction applicationas described herein may be accessible through some combination of a webbrowser, software program, mobile application, and over-the-top (OTT)application.

Once a match has been found, the interaction application may have accessto sufficient information (e.g., the amount due and restaurant name) toallow the customer to pay for the receipt through a conversationalinterface presented by the user device 210. For example, if the receiptis private (i.e., for a single customer), the application may ask forthe customer's credit card information or for confirmation of thepayment amount, tip, etc. However, if the receipt is shared (i.e., formultiple customers), the application may ask how the receipt should besplit between the multiple customers.

Responsive to processing the transaction, the application can send aconfirmation to the customer(s), the merchant, or both. For example, theapplication may respond to each customer directly (i.e., within theconversational interface) by sending a message that states, “Transactioncompleted. You're all set!” The merchant, meanwhile, can be notified viaa message delivered to an employee or by sending a notification to thesmart data cable 206 that causes a confirmation to be printed by thereceipt printer 204.

FIG. 3 depicts how a smart data cable parses data passed between apoint-of-sale system and a receipt printer. The smart data cable caninclude a parsing module for processing data received from thepoint-of-sale system and a communication module for establishing a(secure) communication link with a network-accessible server. In someembodiments, the smart data cable also includes a recognition modulethat performs one or more recognition techniques on data received by thecable (e.g., from the point-of-sale system or from thenetwork-accessible server).

As transaction data is passed from the point-of-sale system to thereceipt printer, the transaction data can be parsed by the smart datacable. The smart data cable may copy certain element(s) required toprocess the transaction. Because the elements represent copies of thetransaction data, the transaction data can be passed to the receiptprinter unaltered. The copied elements can include a manifest of goodsand/or services that are purchased, a payment amount, a merchant name, atime and date of the transaction, and/or any other suitable informationthat would appear on a transaction receipt for purposes of identifyingthe details of the transaction.

As noted above, the cloud-based platform can use the element(s) copiedfrom the transaction data to process a transaction completed by thecustomer using a mobile messaging application. In some embodiments, thecopied element(s) can be used by the cloud-based platform asconfirmation that information specified by the customer through one ormore messages is correct.

FIG. 4 depicts a flow diagram of a process 400 for processing atransaction completed using a messaging application. Initially, a smartdata cable is connected to a point-of-sale system and a receipt printer(step 401). For example, the smart data cable can be physically (e.g.,via USB or serial ports) or wirelessly (e.g., via Bluetooth or NFC)coupled to the point-of-sale system and the receipt printer.

When a transaction is initiated at the point-of-sale system, thepoint-of-sale system generates transaction data and passes thetransaction data to the smart data cable for transmission downstream tothe receipt printer (step 402). The transaction can be initiatedresponsive to the merchant selecting a “print check” button at thepoint-of-sale system. The smart data cable can then parse thetransaction data and copy some or all of the transaction data (step403). For example, the smart data cable may only copy the informationneeded to process the transaction (e.g., the amount to be paid and/or anitemized list of the goods and/or services purchased).

The smart data cable then passes the unmodified transaction data to thereceipt printer and uploads the copied data to a cloud-based platform(step 404). This enables the cloud-based platform to assist inprocessing the transaction between the merchant and the customer. Insome embodiments, the receipt printer prints a receipt after receivingthe transaction data from the smart data cable (step 405).

When the receipt is brought to a customer, the customer may open amessaging application executing on the customer's user device (e.g., amobile phone, tablet, or laptop). The customer can then initiate acommunications session (e.g., a chat with a chat bot) supported by thecloud-based platform by uploading a picture of the receipt to theplatform (step 406). As noted above, the cloud-based platform maycommunications using any messaging application capable of being executedby the customer's user device.

After the platform receives the picture of the receipt, variousrecognition (e.g., optical character recognition techniques) can beperformed by the cloud-based platform so that basic information can beextracted from picture of the receipt (step 407). In some embodiments,the recognition techniques are instead performed by the user device andthe basic information extracted from the picture of the receipt isuploaded to the cloud-based platform for review. The platform can thencompare the basic information extracted from the picture of the receiptto the elements of transaction data copied by the smart data cable (step408).

Once a match has been found, the cloud-based platform determines whetherit has access to sufficient information (e.g., the amount due and themerchant name or identifier) to facilitate processing of the transaction(step 409). For example, if the cloud-based platform does not havesufficient information, the platform may ask for the customer's creditcard information or CVV. However, if the cloud-based platform does havesufficient information, the platform may simply ask for confirmation ofthe payment amount, tip, etc. The cloud-based platform can process thetransaction after retrieving or acquiring the necessary information(step 410).

Responsive to processing the transaction, the platform can send aconfirmation to the customer, the merchant, or both (step 411). Forexample, the platform may respond to the customer directly (i.e., withinthe conversational interface) by sending a message that states,“Transaction completed. You're all set!” The merchant can be notifiedvia a message (e.g., a chat message delivered to an individualassociated with the merchant, such as a cashier or manager) or bysending a notification to the smart data cable that causes aconfirmation to be printed by the receipt printer.

Unless contrary to physical possibility, it is envisioned that the stepsdescribed above may be performed in various sequences and combinations.For instance, the customer may post a picture of the receipt to theplatform before the smart data cable has uploaded the copied elements oftransaction data. Other steps can also be included in some embodiments.

Computer System

FIG. 5 is a block diagram illustrating an example of a computing system500 in which at least some operations described herein can beimplemented. The computing system may include one or more centralprocessing units (“processors”) 502, main memory 506, non-volatilememory 510, network adapter 512 (e.g., network interfaces), videodisplay 518, input/output devices 520, control device 522 (e.g.,keyboard and pointing devices), drive unit 524 including a storagemedium 526, and signal generation device 530 that are communicativelyconnected to a bus 516. The bus 516 is illustrated as an abstractionthat represents any one or more separate physical buses, point to pointconnections, or both connected by appropriate bridges, adapters, orcontrollers. The bus 516, therefore, can include, for example, a systembus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, aHyperTransport or industry standard architecture (ISA) bus, a smallcomputer system interface (SCSI) bus, a universal serial bus (USB), IIC(I2C) bus, or an Institute of Electrical and Electronics Engineers(IEEE) standard 1394 bus, also called “Firewire.”

In various embodiments, the computing system 500 operates as astandalone device, although the computing system 500 may be connected(e.g., wired or wirelessly) to other machines. In a networkeddeployment, the computing system 500 may operate in the capacity of aserver or a client machine in a client-server network environment, or asa peer machine in a peer-to-peer (or distributed) network environment.

The computing system 500 may be a server computer, a client computer, apersonal computer (PC), a user device, a tablet PC, a laptop computer, apersonal digital assistant (PDA), a cellular telephone, an iPhone, aniPad, a Blackberry, a processor, a telephone, a web appliance, a networkrouter, switch or bridge, a console, a hand-held console, a (hand-held)gaming device, a music player, any portable, mobile, hand-held device,or any machine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by the computing system.

While the main memory 506, non-volatile memory 510, and storage medium526 (also called a “machine-readable medium) are shown to be a singlemedium, the term “machine-readable medium” and “storage medium” shouldbe taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store one or more sets of instructions 528. The term“machine-readable medium” and “storage medium” shall also be taken toinclude any medium that is capable of storing, encoding, or carrying aset of instructions for execution by the computing system and that causethe computing system to perform any one or more of the methodologies ofthe presently disclosed embodiments.

In general, the routines executed to implement the embodiments of thedisclosure, may be implemented as part of an operating system or aspecific application, component, program, object, module, or sequence ofinstructions referred to as “computer programs.” The computer programstypically comprise one or more instructions (e.g., instructions 504,508, 528) set at various times in various memory and storage devices ina computer, and that, when read and executed by one or more processingunits or processors 502, cause the computing system 500 to performoperations to execute elements involving the various aspects of thedisclosure.

Moreover, while embodiments have been described in the context of fullyfunctioning computers and computer systems, those skilled in the artwill appreciate that the various embodiments are capable of beingdistributed as a program product in a variety of forms, and that thedisclosure applies equally regardless of the particular type of machineor computer-readable media used to actually effect the distribution.

Further examples of machine-readable storage media, machine-readablemedia, or computer-readable (storage) media include, but are not limitedto, recordable type media such as volatile and non-volatile memorydevices 510, floppy and other removable disks, hard disk drives, opticaldisks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital VersatileDisks, (DVDs)), and transmission type media such as digital and analogcommunication links.

The network adapter 512 enables the computing system 500 to mediate datain a network 514 with an entity that is external to the computing device500, through any known and/or convenient communications protocolsupported by the computing system 500 and the external entity. Thenetwork adapter 512 can include one or more of a network adaptor card, awireless network interface card, a router, an access point, a wirelessrouter, a switch, a multilayer switch, a protocol converter, a gateway,a bridge, bridge router, a hub, a digital media receiver, and/or arepeater.

The network adapter 512 can include a firewall which can, in someembodiments, govern and/or manage permission to access/proxy data in acomputer network, and track varying levels of trust between differentmachines and/or applications. The firewall can be any number of moduleshaving any combination of hardware and/or software components able toenforce a predetermined set of access rights between a particular set ofmachines and applications, machines and machines, and/or applicationsand applications, for example, to regulate the flow of traffic andresource sharing between these varying entities. The firewall mayadditionally manage and/or have access to an access control list whichdetails permissions including for example, the access and operationrights of an object by an individual, a machine, and/or an application,and the circumstances under which the permission rights stand.

Other network security functions can be performed or included in thefunctions of the firewall, can include, but are not limited to,intrusion-prevention, intrusion detection, next-generation firewall,personal firewall, etc.

As indicated above, the techniques introduced here implemented by, forexample, programmable circuitry (e.g., one or more microprocessors),programmed with software and/or firmware, entirely in special-purposehardwired (i.e., non-programmable) circuitry, or in a combination orsuch forms. Special-purpose circuitry can be in the form of, forexample, one or more application-specific integrated circuits (ASICs),programmable logic devices (PLDs), field-programmable gate arrays(FPGAs), etc.

Data Transmission System Overview

FIG. 6 illustrates an exemplary data transmission system 600. In variousembodiments, the data transmission system 600 may be implemented in asmart cable form factor (e.g., as described herein) such that the datatransmission system 600 is attached to two or more devices in a mannersimilar to that of a standard cable, such as an ethernet cable, a USBcable, a serial cable (e.g., RS-232 cable, RS-435 cable, etc.), or anyother cable that facilitates the exchange of electrical signals betweentwo devices.

The data transmission system 600 may be configured between any one ormore source devices and any one or more destination devices. In aparticular embodiment, the data transmission system 600 may beconfigured between a point-of-sale device 605 and a printer 606. The POSdevice 605 may be any type of point-of-sale device, including atraditional point of sale device such as a credit card reader, creditcard scanner, cash register, etc., and/or a computing device capable ofperforming other functions beyond point-of-sale functions, such as asmartphone, tablet, laptop computer, etc., that may be configured withpoint-of-sale functionality. The printer 606 may be any type of printerthat may, for example, be connected to a point-of-sale device forprinting receipts, shift reports, payment reports, etc.

The data transmission system 600 may be connected to the POS device 605by an adapter 610 that may be configured with one or more connectors 611and a universal asynchronous receiver-transmitter (UART) output 612and/or a USB output 613. The one or more connectors 611 may include oneor more connectors that each provide a physical interface for thetransmission and/or reception of data using electrical signals. Inparticular embodiments, the one or more connectors 611 may include oneor more standard physical interfaces such as an RS-232 interface, anRS-435 interface, any type of standard USB interface, any type ofstandard ethernet interface, any other type of standard serialinterface, etc. The adapter 610 may convert the signal received at theone or more connectors 611 into a USB signal that is then provided tothe data transmission system 600 via the USB output 613. Alternatively,or in addition, the adapter 610 may convert the signal received at theone or more connectors 611 into a UART signal that is then provided tothe data transmission system 600 via the UART output 612. Alternatively,or in addition, in embodiments where such signal conversion isunnecessary (e.g., where the received signal(s) includes USB and/or UARTsignal(s)), the adapter 610 may relay the signal(s) received at the oneor more connectors 611 to the data transmission system 600 via the UARToutput 612 and/or the USB output 613.

The adapter 610 may include one or more components configured to converta particular type of non-USB or non-UART received signal into a USBsignal or a UART signal. For example, if the one or more connectors 611includes a particular non-USB or non-UART serial communicationsconnector (e.g., RS-232, RS-485, etc.), the adapter 610 may include oneor more electrical components configured to convert received non-USB ornon-UART serial communications into USB and/or UART communications fortransmission to the data transmission system 600.

If the one or more connectors 611 includes a USB and/or a UART serialcommunications connector and does not include any non-USB or non-UARTserial communications connectors, the adapter 610 may not includeelectrical components configured to convert received signals into USBand/or UART and may instead only include one or more componentsconfigured to relay the received USB and/or UART signals to the datatransmission system 600.

Being configured with adapters such as the adapter 610 (and the adapter690 described below) that can accommodate a variety of physicalinterfaces and convert signals to/from USB/UART allows the datatransmission system 600 to interoperate with a wide variety of POS,printer, and other devices while using UART/USB-based processingcomponents such as the SoC 630. In particular embodiments, the adapter610 may have multiple connectors 611 that allow multiple physicalconnectivity options for multiple types of input devices (e.g., the POSdevice 605). Alternatively, the data transmission system 600 may beconfigured with any one of a plurality of different types of adapters610, each having single connector with a particular type of physicalinterface.

The data transmission system 600 may receive the UART and/or USB signalprovided by the adapter 610 at a multiplexer (MUX) 621. The MUX 621 maythen provide the signal to one or more other components via one or moreoutputs. In a particular embodiment, the MUX 621 may provide thereceived the UART and/or USB signal to a MUX 622. Like the MUX 621, theMUX 622 may provide the UART and/or USB signal received from the MUX 621to one or more other components via one or more outputs. In variousembodiments, each of the MUX 621 and the MUX 622 and/or their respectivefunctionalities may be implemented in physically distinct components,while in other embodiments, the MUX 621 and the MUX 622 and/or theirrespective functionalities may be implemented within a single physicalcomponent.

In a particular embodiment, the MUX 622 may provide the received UARTand/or USB signal to a “system on a chip” (SoC) 630. The SoC 630 may bean integrated circuit that includes computing device components, such asone or more computer processors 631 and one or more memory and/or datastorage components 632. The SoC 630 may include a USB input 641configured to receive a USB signal from the MUX 622. The SoC 630 mayalso, or instead, include a UART input 651 configured to receive a UARTsignal from the MUX 622.

In various embodiments, the SOC 630 may process the data received viathe USB input 641 and/or the UART input 651 by executing, at the one ormore computer processors 631, instructions stored on the one or morememory and/or data storage components 632. The one or more computerprocessors 631 may generate modified data that is then transmitted tothe MUX 622 as a USB signal via a USB output 642 and/or as a UART signalvia a UART output 652. The MUX 622 may transmit this modified data asUART and/or USB to the adapter 690 for communication to the printer 606.Further details are provided herein regarding the various aspects of thetransmission, processing, and/or modification of data by a system suchas the data transmission system 600.

The adapter 690 may be configured with one or more connectors 691 and aUART input 692 and/or a USB input 693. As with adapter 610, the one ormore connectors 691 may include one or more connectors that each providea physical interface for the transmission and/or reception of data usingelectrical signals. In particular embodiments, the one or moreconnectors 691 may include one or more standard physical interfaces suchas an RS-232 interface, an RS-435 interface, any type of standard USBinterface, any type of standard ethernet interface, etc. The adapter 690may convert the UART signal received from the MUX 622 at the UART input692 into the appropriate signal for each of the one or more connectors691 for transmission to the printer 606. Alternatively, or in addition,the adapter 690 may convert the USB signal received from the MUX 622 atthe USB input 693 into the appropriate signal for each of the one ormore connectors 691 for transmission to the printer 606. Alternatively,or in addition, in embodiments where such signal conversion isunnecessary (e.g., where the one or more connectors 691 include USBand/or UART connectors, and therefore the output signal(s) is a USBand/or UART signal), the adapter 690 may relay the signal received atthe UART input 692 and/or the USB input 693 to the one or moreconnectors 691 for transmission to the printer 606.

The adapter 690 may include one or more components configured to converta USB signal and/or a UART signal into one or more particular types ofnon-USB or non-UART signals. For example, if the one or more connectors691 includes a particular non-USB or non-UART serial communicationsconnector (e.g., RS-232, RS-485, etc.), the adapter 690 may include oneor more electrical components configured to convert USB and/or UARTcommunications received from the data transmission system 600 into theparticular non-USB or non-UART communications for transmission to theprinter 606. In particular embodiments, if the one or more connectors691 includes a USB and/or a UART serial communications connector, theadapter 690 may not include electrical components configured to convertreceived signals into USB and/or UART and may instead only include oneor more components configured to relay the received signals to theprinter 606.

In particular embodiments, the adapter 690 may have multiple connectors691 that allow multiple physical connectivity options for multiple typesof output devices (e.g., the printer 606). Alternatively, the datatransmission system 600 may be configured with any one of severaldifferent types of adapters 690, each of which may be configured with asingle connector having a particular type of physical interface.

The data transmission system 600 may further include wirelesscommunications components 660 that may be communicatively connected to,and/or under the control of, the SoC 630. The wireless communicationscomponents 660 may be configured to transmit and/or receive wirelesscommunications of any type. In particular embodiments, the datatransmission system 600 may include one or more Wi-Fi components 680that may include one or more Wi-Fi antennas 681 and a Wi-Fi processor682. The Wi-Fi components 680 may use any suitable version andspecification of any wireless communications technology, such as IEEE802.11. In particular embodiments, the data transmission system 600 mayalso, or instead, include one or more Bluetooth components 670 that mayinclude one or more Bluetooth antennas 671 and a Bluetooth processor672. The Bluetooth components 670 may use any suitable version and/orspecification of Bluetooth. The wireless communications components 660may be configured to exchange data communications via the wirelesscomputer network 608 with one or more external devices, such as one ormore remote systems 609. The data transmission system 600 may receiveand/or transmit data to one or more remote systems 609 as part of theprocessing of data as described in more detail herein.

The components of the data transmission system 600 may be grouped intotwo logical, interrelated subsystems. A primary subsystem 601 mayinclude the components that are used under normal operating conditions(e.g., when power is available, valid instructions are available forexecution at the SoC 630, the data transmission system is connected to awireless network, etc.). A fallback subsystem 602 may include thecomponents that are used under other conditions. Components of theprimary subsystem 601 may also be included in the fallback subsystem 602and vice-versa. In particular embodiments, the MUX 621 exchanges controlsignals (or detects a lack thereof) with the SoC 630 to determineoperating conditions and switch its output. As described in furtherdetail below, when not operating under normal conditions, the MUX 621may switch its output to transmit the data received from the adapter 610directly to the UART input 692 and/or the USB input 693 of the adapter690 for communication to the printer 606.

The power for the data transmission system 600 may be provided viaeither or both of the adapters 610 and 690. In a particular embodiment,the data transmission system 600 may be configured to receive 5V powerfrom the printer 606 via the adapter 690. In such embodiments, the MUX621 may be configured to detect whether power is available from one ofthe adapters and switch its output based on whether such power isavailable. Alternatively, or in addition, data transmission system 600may be configured with a source of power separate from the adapters 610and 690, for example by the use of a ‘Y’ cable between one of theadapters 610 and 690 and the data transmission system 600.Alternatively, or in addition, data transmission system 600 may beconfigured with an independent means of receiving power, for example anintegrated battery or other power supply or a means of receiving powerdirectly or indirectly from an AC power source, such as a standard poweroutlet.

As noted above, a system, such as the data transmission system 600, maytake the form factor of a cable and may be used in place of a typicalcable that merely passes electrical signals. For example, the datatransmission system may be in the form of an elongated, flexible,substantially cylindrical cable that includes a single adapter adjacenteach respective end of the cable and that comprises a housingintermediate the respective ends of the cable for housing one or morecomputer hardware components of the data transmission system 600. Inalternative embodiments, the cable may have a non-circular cross-sectionand/or include multiple adapters adjacent one or more of its ends.

FIG. 7 illustrates an example of such a system according to a particularembodiment. The system 700 shown in FIG. 7 may include a small housing(e.g., slightly wider than a cable) that encapsulates a system such as acomputing system associated with the data transmission system 600. Thesystem 700 may be configured with adapters 710 and 790 using cables 711and 791, respectively. As shown in this figure, the adapters 710 and 790may each include a single non-USB/non-UART physical interface configuredto transmit and receive serial communications. In this example, theadapters 710 and 790 are each configured with an RJ11 connector. Theadapters 610 and 690 described above may take the form of the adapters710 and 790, respectively, as shown in this figure. The adapters 710 and790 may each include various electrical components configured to covertnon-USB/non-UART serial communication to/from USB and/or UARTcommunications. The system 700 may also include an indicator/button 701that may provide a visual indication of system power and/or status andmay provide a simple means of providing input to the system 700 (e.g.,power on, power off, mode setting, etc.).

FIG. 8 illustrates another example of a system such as the datatransmission system 600 according to a particular embodiment. The system800 shown in FIG. 8 may be in a similar physical configuration as thesystem 700 shown in FIG. 7 , described above, except that it may includea single USB connector adjacent each of its respective ends (e.g., a USBType A connector adjacent a first end and a USB Type B connectoradjacent a second end). In this embodiment, the system includes asimilarly small housing (e.g., slightly wider than a cable) thatencapsulates one or more computer hardware components of the datatransmission system 600.

As shown in FIG. 8 , the system 800 may be configured with adapters 810and 890 using cables 811 and 891, respectively. As noted above, theadapters 810 and 890 may each include a single USB physical interfaceconfigured to transmit and receive serial communications. In thisexample, the adapter 810 is configured with a USB Type A connector andthe adapter 890 is configured with a USB Type B connector. The adapters610 and 690 described above may take the form of the adapters 810 and890, respectively, as shown in this figure. The adapters 810 and 890 mayeach include one or more various electrical components configured torelay USB serial communications to/from the system 800 (but, unlike thesystem 700 in FIG. 7 , may not include electrical components configuredto covert non-USB/non-UART serial communication to/from USB and/or UARTcommunications). The system 800 may also include an indicator 801 thatmay provide a visual indication of system power and/or status and mayprovide a simple means of providing input to the system 800 (e.g., poweron, power off, mode setting, etc.).

In various embodiments, a system, such as the data transmission system600, may be fully integrated into the housing of a printer, a POSdevice, and/or one or more other devices. Alternatively, any one or moreof the components of the data transmission system 600 described hereinmay be fully integrated into the housing of a printer, a POS device,and/or one or more other devices. In such embodiments, the datatransmission system and the other device(s) may utilize one or moreshared common components (e.g., memory, wireless communicationscomponents, processors, etc.) to implement any of the variousembodiments described herein.

Data Transmission System Operation

The operation of various embodiments of a data transmission system willnow be described. Referring again to FIG. 6 , the POS device 605 may beconnected to the one or more connectors 611 and transmit acommunications signal to the adapter 610 via the one or more connectors611. The POS device 605 may generate such a communications signal in thecourse of processing a commercial transaction, such as receiving paymentfor goods or services and/or printing an invoice and/or receipt for thesale of services or goods, such as food. In a particular embodiment, thecommunications signal may include instructions intended for a printer(e.g., the printer 606) instructing the printer to print a receiptassociated with the transaction. In various other embodiments, thecommunications signal generated by the POS device 605 may be intendedfor any other purpose and/or destination device. The communicationssignal may include transaction data associated with a particular saletransaction or other type of transaction.

If the communications received at the one or more connectors 611 is notUSB or UART communications, the adapter 610 may convert the receivedcommunications to USB communications and/or UART communications andprovide the converted communications to the USB output 613 and/or theUART output 612, respectively. If the communications received at the oneor more connectors 611 is USB and/or UART communications, the adapter610 may relay the received communications to the USB output 613 and/orthe UART output 612, respectively. The USB output 613 and/or the UARToutput 612 may then transmit the communications signal to the MUX 621.

The MUX 621 may switch the received USB/UART communication signal to aparticular output based on one or more of various criteria. In aparticular embodiment, the MUX 621 may be configured to transmitreceived signals to the MUX 622 when the MUX 621 is receiving at least aparticular level of power (e.g., at least 5V). When the MUX 621 does notdetect a minimum level of power (e.g., detects less than 5V), the MUX621 may instead switch received signals to the adapter 690. In this way,the MUX 621 can ensure communication can be maintained between the POSdevice 605 and the printer 606 in the event of a power loss to the datatransmission system 600. The MUX 621 may receive power from the SoC 622or from any other component of the data transmission system 600.

Alternatively, or in addition, the MUX 621 may be configured to transmitreceived signals to either the MUX 622 or to the adapter 690 based onother detected condition and/or based on received instructions and/orconfigurations. In particular embodiments, the MUX 621 may receive aninstruction or signal from the SoC 630 configuring the MUX 621 totransmit received signals to one or both of the MUX 622 and the adapter690. For example, the SoC 630 may be configured to perform dataprocessing and/or modification only when it has established a wirelesscommunications session with a remote device (e.g., has an activeBluetooth or Wi-Fi communications session). When the SoC 630 is unableto confirm that such a communications session is active, the SoC 630 maytransmit a signal to the MUX 621 causing it to transmit received signalsto the adapter 690. When the SoC 630 successfully establishes orconfirms such a communications session, the SoC 630 may transmit asignal to the MUX 621 causing it to transmit received signals to the MUX622.

Under normal operating conditions, the MUX 621 may transmit the USB/UARTcommunication signal received from the adapter 610 to the MUX 622. TheMUX 622 may then transmit this signal to one or both of the UART 651 andthe USB 641 inputs of the SoC 630 for processing. The one or morecomputer processors 631 of the SoC 630 may execute instructions storedin the one or more memory and/or data storage components 632 to performprocessing of the received signal. One part of this processing may bestorage of the transaction data originally generated by the POS device605 that is included in the received signal. The SoC 630 may analyze thetransaction data to determine whether and how to modify this data. Forexample, the SoC 630 may determine a retailer name, a sales amount, oneor more portions of the sales amount (e.g., subtotals, sales tax, etc.),items purchased, date and time of the sale, etc.

Using the transaction data, the SoC 630 may determine whether and how tomodify the transaction data. In particular embodiments, the SoC 630 maydetermine any modifications based on locally stored data andinstructions (e.g., stored at the one or more memory and/or data storagecomponents 632). For example, the SoC 630 may be configured to augmentthe transaction data with a coupon that offers a discount to thecustomer. In such an embodiment, the SoC 630 may be configured to selecta particular coupon for addition to the transaction data based on thesales amount of the transaction (e.g., customers spending $2,000 or lessget a coupon for 5% off a future purchase, customers spending$20.01-$50.00 get a coupon for 10% of a future purchase, customersspending $50.01 or more get a coupon for 15% of a future purchase,etc.). In other examples, the SoC 630 may be configured to insertpersonalized messages (e.g., a greeting using a name determined from thetransaction data), product instructions (e.g., based on the type ofproduct purchases as determined from the transaction data), proposed tip(e.g., calculated based on the amount of the sale), etc.

In various embodiments, in determining how and whether to modify thetransaction data, the SoC 630 may communicate (e.g., using Wi-Ficomponents 680 or Bluetooth components 670) with a remote system 609 viathe wireless computer network 608 to request and receive data related tothe transaction. For example, the SoC 630 may generate a request tocreate a transaction record for the transaction based on the transactiondata. The SoC 630 may instruct the wireless communications components660 to transmit that request via Wi-Fi or Bluetooth to the remote device609 via the wireless computer network 608. In response, the remotedevice 609 may generate the transaction record and transmit dataassociated with the transaction record back to the wirelesscommunications components 660 via the wireless computer network 608.Using this transaction record data, the SoC 630 may determine andgenerate additional information that is to be appended to thetransaction data (e.g., included in the receipt ultimately printed bythe printer 606).

In a particular embodiment, such transaction record data may includedata that allows the SoC 630 to generate one or more scannable indicia,such as Quick Response (QR) code, that, when scanned by a computingdevice (e.g., smartphone), directs that computing device to a particularwebsite associated with the transaction. For example, the datatransmission system 600 may interact with a remote payment system togenerate a QR code that, when scanned by a customer's smartphone, allowsthe customer to provide payment for the transaction via the remotepayment system using the customer's smartphone. In this example, the SoC630 may insert this QR code into the transaction data such that the QRcode is ultimately printed on the receipt by the printer 606.

In a particular embodiment, additional transaction data received from aremote system may include data that allows the SoC 630 to generate apersonalized coupon or offer based on a customer's status or membershipwith a merchant or other entity. For example, the data transmissionsystem 600 may interact with a remote merchant system to determine that,based on the transaction data transmitted to the remote merchant systemby the data transmission system 600, the customer is a frequent shopperat the particular merchant. In this example, the SoC 630 mayautomatically append the transaction data with a coupon customized forthis particular customer, apply a discount to the purchase price of thetransaction based on the customer's shopper status, and/or modify thetransaction data in some other way based on the customer's shopperstatus.

The SoC 630 may store the modified transaction data in the one or morememory and/or data storage components 632. The SoC 630 may provide themodified transaction data as USB and/or UART communications to the USB642 output and/or the UART 652 output, respectively. The USB 642 outputand/or the UART 652 output may then transmit the USB and/or UARTcommunications to the MUX 622. The MUX 622 may transmit the received USBand/or UART communications to the USB 693 input and/or the UART 692input, respectively, of the adapter 690.

If any of the one or more connectors 691 is not a USB or UART connector,the adapter 690 may convert the USB and/or UART communications receivedfrom the MUX 622 at the USB 693 input and/or the UART 692 input into theappropriate signal for each of the non-USB or non-UART connectors of theone or more connectors 691 for transmission to the printer 606. If theone or more connectors 691 includes a USB and/or a UART serialcommunications connector, the adapter 690 may relay the USB and/or UARTcommunications received from the MUX 622 to the printer 606.

In response to receiving the modified transaction data represented bythe communications signal transmitted from the adapter 690, the printer606 may print a receipt that includes the original transaction dataintended for the receipt by the POS device 605 as modified and/oraugmented by the data transmission system 600. Alternatively, or inaddition, where the MUX 621 transmits the communications signal receivedfrom the adapter 610 directly to the USB 693 input and/or the UART 692(e.g., loss of power condition), the printer 606 may print a receiptthat includes the original transaction data as provided by the POSdevice 605.

In various embodiments, the data transmission system 600 may operatewithout physical connection to one of the POS device 605 or the printer606. For example, the data transmission system 600 may perform any ofthe data transmission and/or modification processes described hereinusing data received from a remote device via the wireless communicationscomponents 660. In a particular embodiment, the data transmission system600 may receive transaction data from the one or more remote systems 609(or any other remote system), process the transaction data as describedherein, and transmit the modified transaction data to the printer 606.Alternatively, or in addition, the data transmission system 600 mayreceive transaction data from the POS device 605, process thetransaction data, and generate modified transaction data as describedherein, but then transmit the modified transaction data to the one ormore remote systems 609 (or any other remote system) using the wirelesscommunications components 660.

Exemplary Data Transmission Process

FIG. 9 illustrates an example Data Transmission Process 900 that may beperformed by a data transmission system, such as the data transmissionsystem 600, according to various embodiments. In performing the DataTransmission Process 900, the system begins at Step 910 by receiving asignal containing data (e.g., transaction data) transmitted by a sourcedevice. The source device may be a physically connected device (e.g.,POS, cash register, computer, smartphone, etc. as described above) or awirelessly connected device (e.g., a remote system communicating withthe data transmission system using wireless communications components asdescribed above). In physical input connection embodiments, the data maybe received at one or more connectors configured at an adapter. Inwireless input connection embodiments, the data may be received atwireless communications components.

In physical input connection embodiments, at Step 920, the system mayprovide the received signal from the adapter as a USB and/or UART signalto a first MUX. If the received signal is already in the form of a USBor UART signal, at Step 920 the adapter may simply relay the signal tothe first MUX. Alternatively, if the received signal is in another form,the adapter may convert the signal (e.g., using components configured atthe adapter) into a USB and/or UART signal and then transmit theconverted signal to the first MUX.

In physical input connection embodiments, at Step 930, the first MUXdetermines whether to provide the received USB and/or UART signal to asecond MUX or to an output adapter. In particular embodiments, the firstMUX may be configured to determine whether the detected power is above aparticular threshold of power (e.g., detect whether the system isreceiving sufficient power). If not, the first MUX may switch anyreceived signal to the output adapter, moving to Step 990, bypassingother components of the system that may be inoperable due to lack ofsufficient power. If the first MUX detects sufficient power, it mayswitch the received signal to one or more other components of the systemfor further processing.

Alternatively, or in addition, the first MUX may receive a signal orinstruction from another component of the system, such as a processor,instructing the first MUX on how to switch the signal. For example, thesystem processor may determine that it is unable to process datacurrently and may instruct the first MUX to switch any received signalto the output adapter, proceeding to Step 990. If the processor iscurrently capable of processing data normally, the processor mayinstruct the first MUX to switch any received signal to one or moreother components of the system for processing.

In response to receiving the signal from the first MUX at the secondMUX, at Step 940 the second MUX transmits the signal to USB and/or UARTinputs of an SoC for processing. At Step 950, the SoC processes thereceived signal by extracting the data represented by the signal anddetermining whether and how to modify the data (e.g., as describedherein). In physical input connection embodiments, the SoC may processthe signal as received from the second MUX, while in wireless inputconnection embodiments, the SoC may process the signal as received fromone or more wireless communications components. In particularembodiments, the SoC determine whether and how to modify the receiveddata based at least in part on the data itself. In particularembodiments, the SoC may also, or instead, determine whether and how tomodify the data based at least in part on locally stored instructionsexecuted by the SoC's processor(s). Alternatively, or in addition, theSoC may determine whether and how to modify the data based at least inpart on communications exchanged with one or more remote systems.Further at Step 950, the SoC may generate the modified data that is tobe transmitted to the destination device.

The destination device may be a physical connected device (e.g., POS,cash register, computer, smartphone, etc. as described above). In suchphysical output connection embodiments, at Step 960, the SoC maytransmit the modified data in a USB/UART signal back to the second MUX.At Step 970, the second MUX may transmit the signal to an outputadapter. At Step 980, the output adapter may convert the received USBand/or UART signal (received from either the second MUX or the firstMUX) to another form for transmission to a destination device via anon-USB and/or a non-UART connector (e.g., as described herein).Alternatively, or in addition, at Step 980 the output adapter may relaythe received USB and/or UART signal to a destination device via a USBand/or a UART connector.

Alternatively, or in addition, the destination device may be awirelessly connected device (e.g., a remote system communicating withthe data transmission system using wireless communications components asdescribed above). In such wireless output connection embodiments,returning the Step 960, the modified data may be transmitted to one ormore remote systems using one or more wireless communications componentsrather than to the second MUX.

Overview of Data Transmission System Interoperation with Remote Systems

The operation of various embodiments of a system that includes one ormore data transmission systems, and one or more remote systems will nowbe described. Referring to FIG. 10 , a system 1000 may include a datatransmission system 1001, which may be, for example, a data transmissionsystem such as the data transmission system 600 described in regard toFIG. 6 . The data transmission 1001 may include any of the componentsand other operational aspects of the data transmission system 600. Thedata transmission system 1001 may be communicatively connected to a POSdevice 1005 and/or a printer 1006. The data transmission system 1001 mayinteroperate with the POS device 1005 and/or the printer 1006 accordingto any of the various embodiments described herein, including asdescribed in regard to the operation of the data transmission system600, the POS device 605, and the printer 606 of FIG. 6 .

The data transmission system 1001 may include Wi-Fi components and/orBluetooth components that allow it to communicate with one or moreremote systems via one or more computer networks 1010. The one or morecomputer networks 1010 may be any one or more networks that facilitatecommunication between two or more computing devices. The one or morecomputer networks 1010 may include components that facilitate wiredcommunications, wireless communications, or any combination thereof. Invarious embodiments, the one or more computer networks 1010 may includethe Internet. In particular embodiments, the data transmission system1001 may communicate wirelessly (e.g., using Wi-Fi and/or Bluetoothcomponents configured at the data transmission system 1001) via the oneor more computer networks 1010 with one or more remote systems that mayalso be communicatively connected (e.g., via wired and/or wirelesscommunications means) to the one or more computer networks 1010.

The system 1000 may include a second data transmission system 1091,which may also be, for example, a data transmission system such as thedata transmission system 600 described in regard to FIG. 6 . The datatransmission 1091 may include any of the components and otheroperational aspects of the data transmission system 600. The datatransmission system 1091 may be communicatively connected to a POSdevice 1095 and/or a printer 1096. The data transmission system 1091 mayinteroperate with the POS device 1095 and/or the printer 1096 accordingto any of the various embodiments described herein, including asdescribed in regard to the operation of the data transmission system600, the POS device 605, and the printer 606 of FIG. 6 . The datatransmission system 1091 may also, or instead, interoperate with thedata transmission system 1001 as described in more detail below. Inparticular embodiments, the data transmission system 1091 maycommunicate wirelessly (e.g., using Wi-Fi and/or Bluetooth componentsconfigured at the data transmission system 1091) via the one or morecomputer networks 1010 with one or more remote systems that may also becommunicatively connected (e.g., via wired and/or wirelesscommunications means) to the one or more computer networks 1010.

Data Transmission System Facilitation of Mobile Payments

In various embodiments, the data transmission system 1001 may take oneor more actions to facilitate the use of one or more mobile paymentsystems. The data transmission system 1001 may use information includedin data received from the POS device 1005 and/or data otherwise intendedfor the printer 1006 to facilitate one or more mobile payments. Forexample, the data transmission system 1001 may receive transaction datagenerated by the POS device 1005 (e.g., in a signal received from thePOS device 1005). One or more processing components of the datatransmission system 1001 may process the transaction data and generate arequest for payment information. The request for payment information mayinclude some or all of the transaction data. The transaction data mayinclude any transaction data, such as a retailer name or other merchantidentifier, a sales amount, an associated employee identifier, a branchor location identifier, one or more portions of the sales amount (e.g.,subtotals, sales tax, etc.), one or more items purchased, date and timeof the transaction, etc. The system may provide this request to one ormore wireless communications components configured at the datatransmission system 1001 for transmission to a payment processing system1040 for processing. The data transmission system 1001 (or another datatransmission system) may then receive responsive data from the paymentprocessing system 1040 that the data transmission system 1001 (or theother data transmission system) can use to facilitate a mobile paymentby a customer, as described in more detail herein.

In particular embodiments, the data transmission system 1001 maytransmit data received from the POS device 1006 in a “raw” form (e.g.,relatively unchanged) to the payment processing system 1040 as a requestfor payment information. The payment processing system 1040 may thentake one or more actions to process the transaction data as receivedfrom the data transmission system 1001 and determine the appropriateresponsive data to transmit back to the data transmission system 1001for facilitating a mobile payment. In such embodiments, the rawtransaction data may be sufficient for the payment processing system1040 to determine the merchant and payment data that may be required tofacilitate a mobile payment for the transaction.

Alternatively, the data transmission system 1001 may transmit additionaldata to the payment processing system 1040 along with some or all of thetransaction data received from the POS device 1005 as a request forpayment information. For example, the data transmission system 1001 mayaugment the transaction data received from the POS device 1005 withadditional information that may be used by the payment processing system1040 to generate payment data that can be used to facilitate a mobilepayment. In a particular embodiment, the data transmission system 1001may augment its transmission to the payment processing system 1040 withidentifying information (e.g., merchant identifier, account number,payment routing information, etc.) that may allow the payment processingsystem 1040 to determine with which merchant the transaction should beassociated and/or where a payment received by the payment processingsystem 1040 for the transaction should be directed. Note that the datatransmission system 1001 may be configured to not provide merchantpayment information details to the printer 1006, as such sensitivemerchant information is not typically made available to customers. Invarious embodiments, such information would only be provided (e.g.,securely) to the payment processing system 1040 so that the paymentprocessing system 1040 could generate the data needed to collect paymentfor the transaction and provide the payment to the merchant.

Alternatively, or in addition, the data transmission system 1001 maytransmit generated data to the payment processing system 1040 as arequest for payment information. For example, as described herein, thedata transmission system 1001 may generate data intended fortransmission to the payment processing system 1040 based on thetransaction data received from the POS device 1005. The datatransmission system 1001 may format, modify, augment, and/or otherwisegenerate data associated with the received transaction data in a formsuitable for processing by the payment processing system 1040. Forexample, the data transmission system 1001 may encapsulate and/oraugment the transaction data with a request for mobile payment data,where the request is recognizable by the payment processing system 1040.The payment processing system 1040 may then use this data sent by thedata transmission system 1001 to generate payment data that it thentransmits back to the data transmission system 1001.

The data transmission system 1001 may receive payment data from thepayment processing system 1040 in response to the transaction datatransmission. This payment data may take any suitable form, such as ascannable code or indicium (e.g., a QR code) that can be scanned by acustomer's mobile device (e.g., smartphone, tablet computer, or laptopcomputer) to allow payment using that mobile device and/or informationthat allows the data transmission system 1001 to generate such a code.The data transmission system 1001 may then integrate this payment datainto a signal transmitted to the printer 1006 so that mobile paymentinformation (e.g., a QR code) may be included on a receipt or otherdocument printed by the printer 1006. The customer may then use theinformation on the receipt, along with a mobile device, the provide apayment for the associated transaction (e.g., by using their mobiledevice to scan the QR code printed on the receipt, which results, forexample, in a browser on the mobile device being used to visit a uniformresource locator (URL) associated with a payment system that thecustomer can use to pay for the transaction—for example, by paying thetotal printed on the receipt and/or a related payment such as thepayment of a tip).

In particular embodiments, rather than a printer, the data transmissionsystem 1001 may integrate payment data into a signal transmitted to atablet or other computing device configured with a display so that thecomputing device can display the mobile payment information (e.g., a QRcode) for scanning by a customer mobile device. Alternatively, or inaddition, the data transmission system may transmit the payment datareceived from the payment processing system 1040 and/or any data thatthe data transmission system 1001 may generate based on such paymentdata to one or more other systems, such as one or more of the dataarchiving system 1030, the business management system 1050, and theconsumer data collection system 1060.

In this way, the data transmission system 1001 allows for the use ofmobile payment technologies at a particular retail outlet withoutrequiring the costly upgrading of legacy equipment at that outlet. Forexample, the data transmission system 1001 may be placed between alegacy POS device and a legacy printer, neither of which may beconfigured for mobile payments or Internet connectivity. The datatransmission system 1001 may receive transaction data for a particulartransaction from the legacy POS device, interact with the paymentprocessing system 1040 to obtain scannable (e.g., by printing orpresenting on a display) payment information recognizable to anapplication on a mobile device, and transmit the payment information tothe legacy printer for printing on a receipt or to a device with adisplay, allowing a customer to use the payment information to make apayment using the customer's mobile device, for example, as discussedabove.

The payment processing system 1040 may also store the transaction dataand/or any determined payment data in a database for future retrieval.In this way, the system may facilitate the storage and identification oftransactions and payments, for example, for multiple particularlocations, without requiring that the POS devices at each such locationbe upgraded with Internet connectivity or other costly components. Thepayment processing system 1040 may use one or more databases or otherdata structures for managing such data and one or more APIs forproviding access to such data (e.g., as described above in regard to theremote systems 1030, 1050, and 1060).

In various embodiments, two or more data transmission systems mayinteroperate to simulate a single payment system using peripheraldevices that are remotely located. For example, a first datatransmission system 1001 may receive transaction data from the POSdevice 1005 that it then uses to generate a payment information request.The first data transmission system 1001 may transmit this paymentinformation request to the payment processing system 1040 which may, inresponse, determine the payment information. However, rather thansending the requested payment information back to the first datatransmission system 1001, which transmitted the payment informationrequest, the payment processing system may send the requested paymentinformation to a second data transmission system 1091, which may not belocated proximate to the first data transmission system 1001 (e.g.,located at a different location, in a different room, etc.). The seconddata transmission system 1091 may then provide the payment informationgenerated by the payment processing system 1040 to the printer 1096 forprinting and presentation to a customer.

In particular embodiments, the payment information request generated bythe data transmission system 1001 may include instructions or other datadirecting the payment processing system 1040 to send the generatedpayment information to a particular data transmission system. Forexample, there may be multiple data transmission systems available asdestination locations for printed receipts with payment information.Each data transmission system 1001 may include in its paymentinformation request a code or other indicator of the intendeddestination data transmission system 1091. Alternatively, or inaddition, the payment processing system 1040 may be configured totransmit payment information to one or more particular data transmissionsystems by default or based on a user configuration in response toreceiving a payment information request from a particular datatransmission system (e.g., in response to any request received from thedata transmission system 1001, the payment processing system 1040 maytransmit payment information to the data transmission system 1091).

In this way, the data transmission systems 1001 and 1091 may allowrelatively simple POS devices, printers, and other devices tointeroperate as if they were physically connected when they are notphysically proximate to one another. For example, a restaurant mayreceive a take-out order via a telephone or via a terminal in anon-public location (e.g., a “ghost” kitchen, back office, etc.) that isnot proximate to the public location where customers would pick up suchorders (e.g., store front, drive-through, etc.). The order may beentered into a POS device connected to a first data transmission systemat the non-public location. The first data transmission system may thencommunicate with a payment processing system that processes thetransaction and generates payment information for the order. The paymentprocessing system may then transmit the payment information to a seconddata transmission system configured with a printer at the publiclocation. The second data transmission system can then use thisinformation to instruct the printer at the public location to print outa receipt that allows a customer to pay for the take-out order when itis picked up.

In various embodiments, the system 1000 may allow legacy POS devices,printers, and other devices to interoperate with internet-based systemsas if they were physically connected to such systems. For example, arestaurant may receive a take-out or delivery order via a website withwhich a customer is interacting using the customer's computing device(e.g., smartphone, tablet, computer, etc.). The order may be enteredinto such a website that collects the information and communicates witha transaction and payment processing system that processes thetransaction and interacts with the customer to collect payment for theorder. The transaction and payment processing system (or anotherrestaurant backend system in communication with the restaurant website)may transmit the order information to a data transmission systemconfigured with a printer at a location of a kitchen for preparation ofthe order. The kitchen data transmission system can then use thisinformation to instruct the printer at the kitchen location to print outthe order and/or present the order on a display so that the kitchenstaff can prepare the order (e.g., for pick up or delivery). The kitchendata transmission system may also instruct a kitchen printer to print areceipt for the order that can accompany the food when it is picked upby the customer or for delivery.

It should be understood in the example above that, in variousembodiments, one or more of the kitchen printers may be attached to asmart data cable that may or may not be connected to a POS device. Thekitchen data transmission system may comprise or consist of this smartdata cable. In an alternative embodiment, the kitchen printers mayinclude the functional components of the smart cable within the interiorof the printers themselves (thus eliminating the need for a separatecable).

In various embodiments, the payment processing system 1040 may interactwith one or more external payment processing systems to obtain and/orgenerate the payment information requested by the data transmissionsystem 1001. In particular embodiments, in response to receiving therequest for payment information (e.g., that includes transaction data)from the data transmission system 1001, the payment processing system1040 may generate a subsequent request for payment information thatcontains some or all of the data in the request received from the datatransmission system 1001 and transmit that request to an externalpayment processing system 1045. Alternatively, or in addition, thepayment processing system 1040 may generate the subsequent request forpayment information based on the request received from the datatransmission system 1001 and transmit the subsequent request to theexternal payment processing system 1045.

The payment processing system 1040 may generate a unique identifier forthe request for payment information received from the data transmissionsystem 1001 (e.g., for the transaction associated with the request forpayment information). The payment processing system 1040 may includethis unique identifier in the subsequent request for payment informationthat it generates and sends to the external payment processing system1045. The external payment processing system 1045 may use the uniqueidentifier, along with the data (e.g., transaction data) received fromthe payment processing system 1040, to generate a unique webpageaccessible via a unique link that may be used to process the transactionassociated with the request for payment information.

This unique link for the particular transaction may be generated using aparticular methodology that may be known to both the payment processingsystem 1040 and the external payment processing system 1045. Forexample, the unique link may be a unique URL that ends in the uniqueidentifier for the particular transaction. In a particular embodiment,the payment processing system 1040 and/or the external paymentprocessing system 1045 may translate this unique URL into a QR code orotherwise generate a QR code based on the unique URL. This QR code maythen be transmitted to the data transmission system 1001 and/or the datatransmission system 1091 for printing on a receipt or other displaymeans for presentation to a customer. Once presented on a receipt orotherwise displayed to a customer, the customer may then scan the QRcode using the customer's smartphone or other computing device, which,in response, results in the customer's computing device presenting theunique payment page at the unique URL. The customer may then providepayment for the transaction using any suitable payment method using thedisplayed payment page (e.g., via any suitable payment method such ApplePay, PayPal, Google Pay, or through manual entry of credit card or debitcard information). Note that in various embodiments, instead of, or inaddition to, a QR code, the system may generate one or more otherindicia associated with the unique URL for presentation to the customer.

In response to receiving payment from the customer, the external paymentprocessing system 1045 may transmit data to the customer confirmingpayment for the transaction. The external payment processing system 1045may also, or instead, transmit data to the payment processing system1040 confirming payment for the transaction. This payment confirmationmay include payment details, such as an amount of tip, subtotals for oneor more taxes associated with the transaction, whether and how paymentfor the transaction was split into multiple payments, etc.

In a particular example, in response to receiving this paymentconfirmation, the payment processing system 1040 may transmit data to anapplication running on one or more computing devices associated with theoperator of the data transmission system associated with thetransaction. For example, the payment processing system 1040 maytransmit a payment confirmation to an application running on a tablet1007 located at the location where the transaction was initiated (e.g.,adjacent to the data transmission system 1001). This application mayprovide a listing of transactions, a payment status for eachtransaction, and/or payment details for each transaction. Alternatively,or in addition, in embodiments where the transaction may be completed ata different location than where the transaction was initiated, thepayment processing system 1040 may transmit a payment confirmation to asmartphone 1097 or other computing device located at the location wherethe transaction was completed (e.g., adjacent to the data transmissionsystem 1091). One or more of device 1007 and 1097 may be a smart phone,tablet, or other computer device located adjacent to a transactionlocation. The payment processing system 1040 may also, or instead,employ alternative means of payment confirmation, such as text messagesor voice calls.

In particular embodiments, the payment processing system 1040 maytransmit instructions to a data transmission system to transmit printeror other display data confirming payment. For example, in response toreceiving payment confirmation from the external payment processingsystem 1045, the payment processing system 1040 may transmitinstructions to the data transmission system 1001 to send printer datato the printer 1006 that will instruct the printer 1006 to printer areceipt indicating that payment for a transaction has been received.Alternatively, or in addition, in response to receiving paymentconfirmation from the external payment processing system 1045, thepayment processing system 1040 may transmit instructions to the datatransmission system 1091 to send printer data to the printer 1096 thatwill instruct the printer 1096 to print a receipt indicating thatpayment for a transaction has been received.

In various embodiments, the payment processing system 1040 may providetransaction data, payment information, and/or any other data that itreceives, processes, and generates to one or more other systems forfurther processing as described herein. For example, one or more of thedata archiving system 1030, the business management system 1050, and/orthe consumer data collection system 1060 may be operated by the sameentity that operates the payment processing system 1040. In suchembodiments, the payment processing system 1040 may transmit any of thedata received, processed, and/or generated based on one or morecommunications exchanged with any one or more of the data transmissionsystem 1001, the data transmission system 1091, or the external paymentprocessing system 1045 to any one or more of the Data Archiving System1030, Business Management System 1050, or Consumer Data CollectionSystem 1060. The payment processing system 1040 may also, or instead,provide data to other external systems such as one or more externalaccounting systems (e.g., Quickbooks), inventory management and/ortracking systems, etc. By providing data to such other systems after atransaction is complete, the payment processing system 1040 may beconfigured to provide complete transaction data, reflecting tip amounts,total tax, payment confirmation, etc.

Data Archiving Using a Data Transmission System

In various embodiments, the data transmission system 1001 may take oneor more actions to facilitate the archiving of data that it receives,transmits, generates, or otherwise processes, such as data received fromthe POS device 1005 and/or data that the data transmission system 1001generates for transmission to the printer 1006. For example, the datatransmission system 1001 may receive data generated by the POS device1005 (e.g., in a signal received from the POS device 1005). One or moreprocessing components of the data transmission system 1001 may providethis data to one or more wireless communications components configuredat the data transmission system 1001 for transmission to a dataarchiving system 1030 for storage and potential future retrieval. Thisdata may include transaction data, such as a retailer name, a salesamount, an associated employee identifier, a branch or locationidentifier, data and time information, employee information, one or moreportions of the sales amount (e.g., subtotals, sales tax, tip, etc.),particular items purchased, quantities of particular items purchased,etc. Alternatively, or in addition, this data may includenon-transaction data, such as shift data (e.g., one or more shift times,one or more employees working at a particular time, one or morelocations, etc.) and/or any other type of data.

In particular embodiments, the data transmission system 1001 maytransmit data received from the POS device 1005 in a “raw” form (e.g.,relatively unchanged) to the data archiving system 1030. The dataarchiving system 1030 may then take one or more actions to archive thedata received from the data transmission system 1001.

Alternatively, the data transmission system 1001 may transmit additionaldata along with the raw data received from the POS device 1005. Forexample, the data transmission system 1001 may augment the raw datareceived from the POS device 1005 with additional information that maybe stored and/or used by the data archiving system 1030. In a particularembodiment, the data transmission system 1001 may augment a transmissionto the data archiving system 1030 with identifying information that mayallow the data archiving system 1030 to properly archive the data. Suchinformation may or may not be related to the data received from the POSdevice 1005 (e.g., this information may be unrelated to a particulartransaction represented by the received data). The augmentationinformation generated by the data transmission system 1001 may includeinformation that is not available to the POS device 1005 and thereforenot present in the data received from the POS device 1005 (e.g.,location information, store identifier, codes, etc.). In this way, thedata transmission system 1001 allows for the offsite archiving data at aparticular location without requiring the upgrading of legacy equipmentat that location. Any additional information that the data transmissionsystem 1001 generates for transmission to the data archiving system 1030with raw data may, or may not, be included in data that is ultimatelytransmitted to the printer 1006.

In various embodiments, the data transmission system 1001 may be placed(functionally and/or physically) between a legacy POS device and alegacy printer that may not be configured for indicating a particularretail location. The data transmission system 1001 may receivetransaction data for a particular transaction from the legacy POSdevice, inject a location identifier into the transaction data, andtransmit the data augmented with the location identifier to the dataarchiving system 1030 for archiving and associating with the particularlocation. The data archiving system 1030 may store this transaction datain a database that includes a location identifier field for each storedtransaction. In this way, the system facilities the storage andidentification of transaction data for multiple particular locationswithout requiring that the POS devices at each such location be upgradedwith the capability of providing location information.

For example, a particular retail location may be acquired by an entitythat operates several retail locations. This entity may wish to archivedata generated at all of its retail locations. However, the acquiredparticular retail location may have legacy equipment that is not capableof communicating with remote systems, such as the data archiving system1030. This legacy equipment may also not be capable of inserting retaillocation codes or other information that is useful to the data archivingsystem operated by the entity. In this example, the entity may insert adata transmission system, such as data transmission system 1001, betweena legacy POS device and a legacy printer configured at the acquiredparticular retail location. This data transmission system may beconfigured to insert a retail location code and/or other informationinto data received from the legacy POS device and transmit the augmenteddata to a remote system for archiving. In this way, the entity mayarchive data generated at the acquired particular retail locationwithout going through the expense of upgrading the legacy equipment atthe location.

In various embodiments, the data transmission system 1001 may also, orinstead, generate data and transmit the generated data to the dataarchiving system 1030. This generated data may include data generatedbased on the data received from the POS device 1005 and/or datarepresenting a modified version of such received data. For example, asdescribed herein, the data transmission system 1001 may use datareceived from the POS device 1005 to generate data intended fortransmission to the printer 1006 (e.g., QR code, other scannableindicia, a message, etc.). The data transmission system 1001 may also,or instead, modify the data received from the POS device 1005 togenerate data intended for transmission to the printer 1006 (e.g., oneor more coupons, customized messages, data to add emphasis to particularitems and/or amounts, etc.). The data transmission system 1001 maytransmit this generated and/or modified data to the data archivingsystem 1030 in addition to, or instead of, transmitting such generatedand/or modified data to the printer 1006. The data transmission system1001 may transmit this generated and/or modified data with or withoutraw data received from the POS device 1005 and/or any additional data.

In various embodiments, the data transmission system 1001 may also, orinstead, transmit payment data to the data archiving system 1030. Thispayment data may include data received from a payment processing system1040 and/or data generated by the data transmission system 1001 based ondata received from the payment processing system 1040. For example, asdescribed in more detail below, the data transmission system 1001 mayuse data received from the POS device 1005 to generate a request forpayment information that the data transmission system 1001 transmits tothe payment processing system 1040. The payment processing system 1040may transmit the requested payment information to the data transmissionsystem 1001 in response to the request. Along with using this paymentinformation to generate data intended for transmission to the printer1006 (e.g., a QR code or other scannable indicia, payment instructions,etc.), the data transmission system 1001 may also (or instead) transmitthis payment information and/or the payment data generated fortransmission to the printer 1006 to the data archiving system 1030. Thedata transmission system 1001 may also, or instead, transmit thegenerated request for payment information to the data archiving system1030. The data transmission system 1001 may transmit this paymentinformation request, payment information, and/or payment data to thedata archiving system 1030 with or without any of the other datadescribed herein, such as raw data received from the POS device 1005,additional data, modified data, and/or other generated data.

In particular embodiments, the data transmission system 1001 may provideany of the data transmitted to the data archiving system 1030, or anyportion thereof, to the printer 1006 (or one or more other devices) forgenerating a receipt or other document as described herein.Alternatively, the data transmission system 1001 may not provide suchdata to the printer 1006. For example, the data transmission system 1001may be configured to operate as a dedicated archiving component,providing data for archiving to the data archiving system 1030 withouttransmitting data to a printer or any other device.

In particular embodiments, the data archiving system 1030 may also, orinstead, receive data from the payment processing system 1040 that maythen be archived at the data archiving system 1030. For example,completed transaction data may be received from the payment processingsystem 1040 for storage at the data archiving system 1030 (e.g.,including tip amounts, tax subtotals, confirmation of payment, paymenttype, etc.).

The data archived by the data archiving system 1030 may be retrieved,processed, modified, etc. as desired by one or more other remotesystems, such as one or more user computing devices 1020. For example,the one or more user computing devices 1020 may be configured to use thedata stored by the data archiving system 1030 to generate one or moresales reports and/or shift reports, perform sales and/or performanceanalysis, etc., for one or multiple locations (e.g., retail locations).

In particular embodiments, the data archiving system 1030 may provide anapplication programming interface (API) to allow other devices to accessthe archived data that, for example, has been provided to the dataarchiving system 1030 by the data transmission system 1001 and/or thedata transmission system 1091. For example, the data archiving system1030 may store received data transmission system data in a databasemanaged by software executing on the data archiving system 1030 thatorganizes and provides access to such stored data. The data archivingsystem 1030 may organize this data into one or more data structures thatcan be stored as part of the database, indexed, and searched.

In particular embodiments, the data archiving system 1030 may parse thedata received from the data transmission system 1001 to determineparticular values and/or value types in such data. The data archivingsystem 1030 may then store the values in appropriate fields in a datastructure associated with a particular set of data received from thedata transmission system 1001. Alternatively, or in addition, the datatransmission system 1001 may have received and/or determined value typesfor particular pieces of data and included indicators of the value typesalong with that data that it has transmitted to the data archivingsystem 1030. The data archiving system 1030 may store the valuesincluded in such data in fields in a data structure based on therespective value types indicated in the data received from the datatransmission system 1001.

For example, the data archiving system 1030 may receive transaction datafrom the data transmission system 1001 for a particular transaction. Inresponse to recognizing this data as transaction data for a particulartransaction, the data archiving system 1030 may generate a datastructure for the particular transaction. The data archiving system 1030may parse the received transaction data to determine particular valuesfor particular types of transaction data, such as a total sale amount,an amount of sales tax, an amount of the sale associated with alcohol,an amount of the sale associated with food, a tip amount, a storelocation, etc. The data archiving system 1030 may then assign theparticular values for particular types of transaction data to thecorresponding fields of the data structure for that particulartransaction. The data archiving system 1030 may store or otherwiseassociate the data structure with a database of data transmission systemdata (e.g., associated with a particular location, a particular entity,etc.) for future use.

The data archiving system 1030 may provide an API that allows a remotedevice to access data from such a database. The API may allow a remotedevice to retrieve, search, modify, store, and/or delete data in thedatabase. For example, the one or more user computing devices 1020 mayinteract with the data archiving system 1030 using such an API toretrieve data for analysis and/or processing by the one or more usercomputing devices 1020. In particular examples, the one or more usercomputing devices 1020 may retrieve data from the data archiving system1030 via an API to generate and/or auto-populate reports (e.g., expensereports, sales reports, etc.), generate support data (e.g., forfinancial disclosures, tax filings, loans documentation, etc.), and/orperform any other suitable processing of data that may be received froma data transmission system.

Enhanced Business Management and Inventory Control Using a DataTransmission System

In various embodiments, the data transmission system 1001 may take oneor more actions to facilitate the use of data for enhanced businessmanagement and inventory control. The data transmission system 1001 maytransmit any of the data that it receives, transmits, generates, and/orprocesses (e.g., according to any of the embodiments set forth herein)to a business management system 1050. In particular embodiments, thedata transmission system 1001 may also provide any portion of such datato the printer 1006 or one or more other devices for generating areceipt or other document as described herein. Alternatively, the datatransmission system 1001 may not provide such data to the printer 1006.For example, the data transmission system 1001 may be configured tooperate as a dedicated business management system component, providingdata for enhanced business management and inventory control to thebusiness management system 1050 without transmitting data to a printeror any other device.

The data received by the business management system 1050 from the datatransmission system 1001 may be retrieved, processed, modified, etc. asdesired by one or more other remote systems, such as one or more usercomputing devices 1020. For example, a user may use the data stored bythe business management system 1050 to determine sales (e.g., gross,net, etc.), costs (inventory costs, payroll costs, etc.), generate salesreports and/or shift reports, perform sales and/or performance analysis,etc., for one or multiple locations (e.g., retail locations). The datatransmission system 1001 may also, or alternatively, provide data thatthe business management system 1050 may use to determine customerinformation, such as numbers of new customers, numbers of returningcustomers, specific customers patronizing a location, types ofcustomers, tips left by specific customers, average tips left bycustomers in general, ranking of popularity of products and/or servicessold, preferred payment methods, etc. The data transmission system 1001may also, or alternatively, provide data that the business managementsystem 1050 may use to determine inventory information, such asparticular items sold and/or quantities of such items sold, particularitems remaining in inventory and/or quantities of such items remining ininventory, length of time that particular items have been in inventoryand/or quantities of such items, etc.

In particular embodiments, the data archiving system 1030 may also, orinstead, receive data from the payment processing system 1040 that maythen be stored and accessed at the business management system 1050. Forexample, completed transaction data may be received from the paymentprocessing system 1040 for storage at the business management system1050 (e.g., including tip amounts, tax subtotals, confirmation ofpayment, payment type, etc.).

In particular embodiments, the business management system 1050 mayprovide an API to allow other devices to access the data that, forexample, was provided to the business management system 1050 by the datatransmission system 1001 and/or the data transmission system 1091. Forexample, the business management system 1050 may store received datatransmission system data in a database managed by software executing onthe business management system 1050 that organizes and provides accessto such stored data. The business management system 1050 may organizethis data into one or more data structures that can be stored as part ofthe database, indexed, and searched.

In particular embodiments, the business management system 1050 may parsethe data received from the data transmission system 1001 to determineparticular values and value types in such data. The business managementsystem 1050 may then store the values in appropriate fields in a datastructure associated with a particular set of data received from thedata transmission system 1001. Alternatively, or in addition, the datatransmission system 1001 may have received and/or determined value typesfor particular pieces of data and included indicators of the value typesalong with that data that it has transmitted to the business managementsystem 1050. The business management system 1050 may store the valuesincluded in such data in fields in a data structure based on therespective value types indicated in the data received from the datatransmission system 1001.

For example, the business management system 1050 may receive transactiondata from the data transmission system 1001 for a particulartransaction. In response to recognizing this data as transaction datafor a particular transaction, the business management system 1050 maygenerate a data structure for the particular transaction. The businessmanagement system 1050 may parse the received transaction data todetermine particular values for particular types of transaction data,such as a total sale amount, an amount of sales tax, a tip amount, anamount of the sale associated with alcohol, an amount of the saleassociated with food, a quantity of an item sold, a quantity of an itemremaining in inventory, a location associated with the transaction, acustomer associated with the transaction, a type of customer associatedwith the transaction, a payment method used in the transaction, etc. Thebusiness management system 1050 may then assign the respectiveparticular values for particular types of transaction data to thecorresponding respective fields of the data structure for thatparticular transaction. The business management system 1050 may store orotherwise associate the data structure with a database of datatransmission system data for future use.

The API provided by the business management system 1050 may allow aremote device to access data from the database. The API may allow such aremote device to retrieve, search, modify, store, and/or delete data inthe database. For example, the one or more user computing devices 1020may interact with the business management system 1050 using such an APIto retrieve data for analysis and/or processing by the one or more usercomputing devices 1020. In particular examples, the one or more usercomputing devices 1020 may retrieve data from the business managementsystem 1050 via an API to generate inventory reports, automaticallygenerate orders for items using inventory information determined basedon the data, determine advertising targets based on the types ofcustomers reflected in the data, generate sales reports for particularlocations, generate payment reports for particular locations, etc.

Consumer Behavior Analysis Using a Data Transmission System

In various embodiments, the data transmission system 1001 may take oneor more actions to facilitate the use of data for consumer behavioranalysis. The data transmission system 1001 may transmit any of the datathat it receives, transmits, generates, and/or processes (e.g.,according to any of the embodiments set forth herein) to a consumer datacollection system 1060. In particular embodiments, the data transmissionsystem 1001 may also provide any portion of such data to the printer1006 for generating a receipt or other document as described herein.Alternatively, the data transmission system 1001 may not provide suchdata to the printer 1006. For example, the data transmission system 1001may be configured to operate as a dedicated consumer behavior analysissystem component, providing data for consumer behavior analysis to theconsumer data collection system 1060 without transmitting data to aprinter or any other local device.

The data received by the consumer data collection system 1060 from thedata transmission system 1001 may be retrieved, processed, modified,etc. as desired by one or more other remote systems, such as one or moreuser computing devices 1020. For example, a user may use the data storedby the consumer data collection system 1060 to determine sales (e.g.,generally or for particular items) in a particular location, comparesales (e.g., generally or for particular items) in multiple locations,determine types of sales in one or more locations (e.g., in person,delivery, take-out, drive-through, etc.), etc. The consumer datacollection system 1060 may receive data from multiple data transmissionsystems allowing it to collect data from multiple locations (e.g.,multiple geographically distinct locations). For example, the consumerdata collection system 1060 may receive data from both the datatransmission system 1001 and the data transmission system 1091 and maymake such data available via API to a user of the one or more computingdevices 1020. The user may then use such data to determine whichgeographical locations sell more or less of particular items thanothers, which locations have comparatively more walk-in customers thanothers, which have comparatively more delivery customers, etc.

In particular embodiments, the consumer data collection system 1060 mayalso, or instead, receive data from the payment processing system 1040that may then be stored and accessed at the consumer data collectionsystem 1060. For example, completed transaction data may be receivedfrom the payment processing system 1040 for storage at the consumer datacollection system 1060 (e.g., including tip amounts, tax subtotals,confirmation of payment, payment type, etc.).

In particular embodiments, the business management system 1050 mayprovide an API to allow other devices to access the data that, forexample, was provided to the consumer data collection system 1060 by thedata transmission system 1001 and/or the data transmission system 1091.For example, the consumer data collection system 1060 may store receiveddata transmission system data in a database managed by softwareexecuting on the consumer data collection system 1060 that organizes andprovides access to such stored data. The consumer data collection system1060 may organize this data into one or more data structures that can bestored as part of the database, indexed, and searched.

In particular embodiments, the consumer data collection system 1060 mayparse the data received from the data transmission system 1001 todetermine particular values and value types in such data. The consumerdata collection system 1060 may then store the values in appropriatefields in a data structure associated with a particular set of datareceived from the data transmission system 1001. Alternatively, or inaddition, the data transmission system 1001 may have received and/ordetermined value types for particular pieces of data and includedindicators of the value types along with that data that it hastransmitted to the consumer data collection system 1060. The consumerdata collection system 1060 may store the values included in such datain fields in a data structure based on the respective value typesindicated in the data received from the data transmission system 1001.

For example, the consumer data collection system 1060 may receivetransaction data from the data transmission system 1001 for a particulartransaction. In response to recognizing this data as transaction datafor a particular transaction, the consumer data collection system 1060may generate a data structure for the particular transaction. Theconsumer data collection system 1060 may parse the received transactiondata to determine particular values for particular types of transactiondata, such as a particular item sold, a particular location where theitem was sold, a particular method of receiving the item (e.g.,delivery, take-out, in-person, etc.), a particular method of payment, acoupon used with purchase, etc. The consumer data collection system 1060may then assign the particular values for particular types oftransaction data to the corresponding fields of the data structure forthat particular transaction. The consumer data collection system 1060may store or otherwise associate the data structure with a database ofdata transmission system data for future use.

The API provided by the consumer data collection system 1060 may allow aremote device to access data from the database. The API may allow such aremote device to retrieve, search, modify, store, and/or delete data inthe database. For example, the one or more user computing devices 1020may interact with the consumer data collection system 1060 using such anAPI to retrieve data for analysis and/or processing by the one or moreuser computing devices 1020. In particular examples, the one or moreuser computing devices 1020 may retrieve data from the consumer datacollection system 1060 via an API to generate marketing material oradvertising for particular locations, coupons for particular items,locations, and/or customers, promotions for particular methods ofreceiving items (e.g., delivery, take-out, in-person, etc.), etc. Inparticular embodiments, the one or more user computing devices 1020and/or the consumer data collection system 1060 may use artificialintelligence (AI) and/or machine learning to analyze theconsumer-related data stored at the consumer data collection system 1060and automatically determine targeted marketing materials and/orstrategies for particular geographical locations or regions.

Exemplary Remote System Data Storage Process

FIG. 11 illustrates an example Remote System Data Storage Process 1100that may be performed by a data transmission system, such as any one ormore of the data transmission systems 600, 1001, and 1091, according tovarious embodiments. In performing the Remote System Data StorageProcess 1100, the system begins at Step 1110 by a data transmissionsystem receiving a signal containing data (e.g., transaction data)transmitted by a source device. The source device may be a physicallyconnected device (e.g., POS, cash register, computer, smartphone, etc.)or a wirelessly connected device (e.g., a remote system communicatingwith the data transmission system using wireless communicationscomponents).

At Step 1120, the system may determine whether to augment the received(e.g., “raw”) data with any additional information (e.g., one or moreidentifiers and/or other types of information). If the system determinesthat the raw data is to be supplemented with additional data, at Step1130 the system determines this additional data and inserts theadditional data into the raw data or otherwise augments the raw datawith the additional data. If the system determines that the raw data isnot to be supplemented with additional data, the process moves to Step1140.

At Step 1140, the system may determine whether to generate data, forexample, based on the received data (e.g., generate a QR code, coupon,etc. based on received transaction data and/or received paymentinformation) and/or modify the received data. If the system determinesto generate data and/or modify the received data, at Step 1150 thesystem generates data (e.g., based on the received data) and/or modifiesthe received data. The system then inserts the generated and/or modifieddata into the data to be sent to one or more remote systems, such as oneor more of the data archiving system 1030, the business managementsystem 1050, the consumer data collection system 1060, and/or thepayment processing system 1040. In particular embodiments, the systemgenerates data that may be used to facilitate retrieval of the dataafter storage. For example, the data transmission system may include, inthe data sent to a remote system, one or more identifiers, labels, etc.that can be stored in a data structure associated with a particular dataset (e.g., transaction data for a particular transaction). As describedherein, such data structures can then be searched later to readilyidentify data associated with a particular data set (e.g., data setassociated with a transaction of interest). If the system determinesthat no data is to be generated and/or the received data is not to bemodified, the process moves to Step 1160.

At Step 1160, the system may transmit the data intended for remotestorage (e.g., raw data, additional data, generated data, and/ormodified data) to one or more remote systems. The system may use any ofthe communications methods described herein to do so, such as usingwireless communications components configured to communicate with aremote system via one or more computer networks.

At Step 1170, the system may determine whether to also transmit the data(e.g., the data intended for remote storage) to a printer or otherdevice. In particular embodiments, the system may be configured totransmit data to a printer for printing a receipt or other paperdocument that can then be presented to a customer, as described herein.Alternatively, the system may be configured to perform remote storagefunctions without interacting with a printer or other peripheral device.If the system determines that the data is to be provided to a printer orother device, at Step 1180 the system transmits the data to the printeror other device. After transmitting the data to the printer or otherdevice, or if the system determines that the data is not to betransmitted to a printer or other device, the system may return to Step1110 to process additional data.

Exemplary Remote System Payment Process

FIG. 12 illustrates an example Remote System Payment Process 1200 thatmay be performed by one or more data transmission systems, such one ormore of the data transmission systems 600, 1001, and/or 1091, accordingto various embodiments. In performing the Remote System Payment Process1200, the system begins at Step 1210 by receiving a signal containingdata (e.g., transaction data) transmitted by a source device. The sourcedevice may be a physically connected device (e.g., POS, cash register,computer, smartphone, etc. as described above) or a wirelessly connecteddevice (e.g., a remote system communicating with the data transmissionsystem using wireless communications components as described above).

At Step 1220, the system may determine whether the ultimate destinationfor payment information associated with the received data is another,different data transmission system. For example, as noted above, two ormore data transmission systems may interoperate such that orders placedusing a POS device at a first location connected to a first datatransmission system may generate a printed receipt with paymentinformation at a printer attached to a second data transmission systemat a second, different location. If, at Step 1220, the system determinesthat the destination data transmission system is a different system thanthe system receiving data at Step 1210, at Step 1230 the system maydetermine information associated with the destination system that may beneeded to generate a request for payment information. For example, thesystem may access a database using information contained in the datareceived at Step 1210 to determine an identifier for the destinationsystem. Alternatively, the system may be configured to insert aparticular identifier or code into all requests for payment information.In another alternative, the system may be configured to identify a codeor other data in the data received at Step 1210 and correlate theidentified code or data with a particular destination identifier thatcan then be inserted into a request for payment information.

In particular embodiments, the system may not be configured to determinea destination system and, instead, the destination system may bedetermined by the payment processing system and/or default to being thesame data transmission system. In such embodiments, the process may movefrom Step 1220 to Step 1240.

At Step 1240, the system may generate a payment information request.This request may include a destination data transmission systemidentifier if the system determined at Step 1220 that a destination datatransmission system may is to be identified in the request. The requestmay also, or instead, include any other information that may be suitablefor requesting payment information from a payment processing system,such as transaction data and/or merchant information. At Step 1250, thesystem may transmit the payment information request to a paymentprocessing system. In particular embodiments, the system may alsotransmit the payment information request and/or any other data that thesystem has received, generated, and/or modified to one or more otherremote systems as described in various embodiments herein.

At Step 1260, the system may receive payment information from thepayment processing system that the payment processing system generatedin response to the request sent at Step 1250. At Step 1270, the systemmay generate any data to be provided to a printer (e.g., any othertypical receipt information, transaction data, messages, coupons, etc.)and the payment information and transmit such data and information tothe printer to be printed on a receipt or other document and presentedto the customer for payment. In particular embodiments, the system mayalso transmit some or all of the payment information received from thepayment processing system and/or any other data that the system hasreceived, generated, and/or modified to one or more other remote systemsas described in various embodiments herein.

It is noted that when the destination data transmission system isdetermined to be a different system (e.g., at Step 1220), the paymentprocessing system may transmit the payment information to that differentsystem. In such embodiments, Steps 1260 and 1270 may be executed at thatdifferent destination data transmission system.

Example Payment Facilitation Using a Data Transmission System

A particular use case will now be discussed in the context offacilitating payments at restaurants, and for monitoring/tracking salesand payment activity at various restaurants using one or more datatransmission systems according to a particular embodiment where a datatransmission device is being used in place of a standard cable thatextends between a legacy POS device and a legacy printer (e.g., whereneither of which has the capability to process payments via a wirelessdevice). In the following example, reference will be made to theexemplary devices and components described above as well as the examplereceipt and user interfaces illustrated in FIGS. 13-16 .

In this example, a restaurant owner may configure a system by replacinga standard printer cable extending between the restaurant's legacy POSsystem and its legacy printer with a smart cable that may be a datatransmission system such as those described herein (e.g., in regard tothe data transmission system 1001 of FIG. 10 ). This example smart cablemay take the form of an elongated cord having an integrated housingcontaining one or more of the components of a data transmission systemas described herein (e.g., data transmission system 600, 700, 800, 1001,1091). The respective ends of the smart cable may include one or moreconnectors, adapters, etc. (e.g., as described herein). This smart cablemay, for example, take the form of any suitable embodiment describedabove.

In this example, a customer may place an order for food at therestaurant (e.g., in person, by calling in the order, placing the orderonline, etc.). In response to receiving the order, a restaurant workermay enter the order into a POS device (e.g., the POS device 1005), whichthen generates transaction data that includes, for example, adescription of each item in the individual's order (e.g., sashimi, asampler, a drink, etc.) and a corresponding price for each item. The POSdevice may also calculate any additional charges, such as sales tax,that apply to the transaction. After the transaction information iscomplete, the restaurant worker may press a particular button on the POSdevice to complete the transaction. At least partially in response todetecting the press of this button, the POS device transmits theinformation for the transaction (i.e., the transaction informationintended for a receipt printer) into the smart cable. This informationarrives at the smart cable and is provided to the processing componentsof the cable and processed as described herein.

If the smart cable has sufficient power and is connected to a suitablenetwork (e.g., a local wireless network that is connected to theInternet), the wireless communications components of the cable transmitthe transaction data (e.g., as received, generated by the processingcomponents, etc.) to one or more remote systems (e.g., with a requestfor payment information). In this example, the cable may transmit thetransaction data to: (1) a data archiving system; (2) a businessmanagement system; (3) a consumer data collection system; and/or (4) apayment processing system (see, e.g., FIG. 10 and the systemsrepresented therein) for use by those respective systems (e.g., asdescribed above). It should be understood that while, in this exampleand other examples provided elsewhere herein, the respectivefunctionality of such remote systems are shown as being executed byseparate computing systems (e.g., separate servers), in otherembodiments, the functionality of these various systems (e.g., the DataArchiving System 1030, Payment Processing System 1040, BusinessManagement System 1050, Consumer Data Collection System 1060) may beimplemented by fewer than four individual computing systems (e.g., on asingle server running a single software application).

As noted above, in response to receiving the transaction data, the dataarchiving system may parse the transaction data and store the data intoa particular data structure for later retrieval (e.g., via a suitableAPI) and use (e.g., by the business that is involved in thetransaction). For example, the transaction data may be used in thecontext of a tax audit or in any other suitable context. Similarly, thebusiness management system and/or the consumer data collection systemmay also, or instead, parse this transaction data and store the datainto a particular data structure for later retrieval (e.g., via asuitable API) and use, as described herein.

Continuing with the restaurant purchase example, in response toreceiving the transaction data, the payment processing system mayfacilitate a mobile payment (or other touchless or non-touchlesspayment) for the transaction. For example, at least partially inresponse to receiving the transaction data (e.g., within a request forpayment information), the payment processing system may analyze the datato identify each item within the transaction and the respective pricefor each item. The payment processing system may then pass the analyzeddata to an external payment processing server that is configured toaccept mobile and/or non-mobile methods of payment such as Apple Pay,PayPal, Google Pay, or manual entry of credit card information. Thisexternal payment processing server may generate a unique URL asdescribed above and provide the URL and/or information associated withthe URL (e.g., a QR code representing the URL) to the payment processingsystem which then transmits that information the smart cable. The smartcable may in turn transmit this information to a printer as receipt datafor printing on a receipt. In particular embodiments, the smart cablemay process the information received from the payment processing systemas described herein to generate suitable receipt data for thedestination printer or other device.

Referring now to FIG. 13 , in response to receiving the receipt datafrom the smart cable, the printer may print a receipt 1300. The receipt1300 may include transaction data 1310 (e.g., that may reflect the datareceived from a POS device) as well as augmented data, such as a QR code1320 that will allow a customer to provide a payment for the transactionusing a mobile device.

In response to scanning the QR code 1320, the customer's mobile devicemay be directed to a unique payment URL that may link to a uniquetransaction webpage that may be generated by an external paymentprocessing system (e.g., the external payment processing system 1045 ofFIG. 10 ). Referring now to FIG. 14 , this unique payment URL mayinclude a user interface 1400 that provides a listing of the transactiondata 1410 and a control 1420 that allows the customer to begin thepayment process.

In response to the activation by the customer of the control 1420, thecustomer's mobile device may be directed to another user interface thatallows the customer to specify a tip amount. Referring now to FIG. 15 ,the user interface 1500 may allow a user to select a predetermined tipamount, no tip, or enter a custom tip amount. In response to receivingan indication from the customer of a tip amount, the customer's mobiledevice may then present a final payment user interface 1600 as shown inFIG. 16 . Via user interface 1600, the customer may choose a mobilepayment mechanism (e.g., Apple Pay, PayPal) or enter credit cardinformation to complete the transaction.

Example Remote Kitchen Order Processing Using Data Transmission Systems

A particular use case will now be discussed in the context offacilitating the fulfillment of food orders using separate locations forreceiving orders and filling orders. As will be appreciated, thepractice of obtaining restaurant meals via delivery and take-out hasincreased dramatically recently. In various embodiments, the discloseddata transmission systems may be used to facilitate communicationsregarding food orders between multiple locations. For example, fooddelivery orders may be received at a central location and then providedto one of several possible other locations that each may be physicallyseparate from the central location. In the following example, referencewill be made to the exemplary devices and components described above.

A data transmission system (e.g., the data transmission system 1001 ofFIG. 10 ) may be configured at a central location that receives foodorders for delivery. The data transmission system may receive order datafrom a POS device (e.g., the POS device 1005 of FIG. 10 ) and transmitthe order data to a remote system for processing. The data transmissionsystem at the central location may modify and/or augment the order dataas described herein or may send the order data unchanged as receivedfrom the POS device (as “raw” data) using its wireless communicationscomponents. The remote system (e.g., the payment processing system 1040,the business management system 1050, etc.) may select an appropriatedestination remote system for the order. In particular embodiments, theremote system may select an appropriate destination system based on theorder data. For example, the order data may include an identifier of adestination system or the data transmission system may augment the orderdata with an identifier of a destination system. In particularembodiments, the remote system may be configured to determine anappropriate destination system based on various criteria, such as alocation of the customer (e.g., that may be included in the order data),the ability of one or more of various destination kitchens to timelyfulfill the order, etc.

Alternatively, or in addition, a customer may generate order data byinteracting with a website using the customer's device (e.g., smartphone, computer, tablet, etc.). This website may transmit the order datato a remote system for processing. The website may modify and/or augmentthe order data as described herein or may send the order data unchangedas received from customer via the website (as “raw” data). The remotesystem (e.g., the payment processing system 1040, the businessmanagement system 1050, etc.) may select an appropriate destinationremote system for the order. In particular embodiments, the remotesystem may select an appropriate destination system based on the orderdata. For example, the order data may include an identifier of adestination system or the data transmission system may augment the orderdata with an identifier of a destination system. In particularembodiments, the remote system may be configured to determine anappropriate destination system based on various criteria, such as alocation of the customer (e.g., that may be included in the order data,determined by the website, etc.), the ability of one or more of variousdestination kitchens to timely fulfill the order, etc.

In particular embodiments, the destination remote system may be anotherdata transmission system (e.g., the data transmission system 1091 ofFIG. 10 ) that may then send the order data to a printer (e.g., theprinter 1096 of FIG. 10 ) for printing out as an order that can beprepared at the location at which the destination data transmissionsystem is located. Alternatively, the destination remote system may beany other type of device, such as a computing device with a display,that conveys the order information to one or more employees at thelocation of the destination remote system for preparation.

CONCLUSION

Although embodiments above are described in reference to various datatransmission systems, it should be understood that various aspects ofthe system described above may be applicable to other types of systems,in general.

While this specification contains many specific embodiment details,these should not be construed as limitations on the scope of anyinvention or of what may be claimed, but rather as descriptions offeatures that may be specific to particular embodiments of particularinventions. Certain features that are described in this specification inthe context of separate embodiments may also be implemented incombination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment may also beimplemented in multiple embodiments separately or in any suitablesub-combination. Moreover, although features may be described above asacting in certain combinations and initially claimed as such, one ormore features from a claimed combination may in some cases be excisedfrom the combination, and the claimed combination may be directed to asub-combination or variation of a sub-combination.

Similarly, while operations may be described in a particular order, thisshould not be understood as requiring that such operations be performedin the particular order described or in sequential order, or that alldescribed operations be performed, to achieve desirable results. Incertain circumstances, multitasking and parallel processing may beadvantageous. Moreover, the separation of various system components inthe embodiments described above should not be understood as requiringsuch separation in all embodiments, and it should be understood that thedescribed program components and systems may generally be integratedtogether in a single software product or packaged into multiple softwareproducts.

Many modifications and other embodiments of the invention will come tomind to one skilled in the art to which this invention pertains havingthe benefit of the teachings presented in the foregoing descriptions andthe associated drawings. Therefore, it is to be understood that theinvention is not to be limited to the specific embodiments disclosed andthat modifications and other embodiments are intended to be includedwithin the scope of the appended claims. Although specific terms areemployed herein, they are used in a generic and descriptive sense onlyand not for the purposes of limitation.

1. A smart data cable comprising: a first connection thatcommunicatively couples the smart data cable to at least one of apoint-of-sale system or a printer, wherein: the point-of-sale system isconfigured to generate transaction data for a transaction, and theprinter is configured to receive the transaction data; a secondconnection that communicatively couples the smart data cable to atransaction processing server; and circuitry within the smart data cableand coupled to the first connection and the second connection, whereinthe circuitry is configured to: establish a wireless communications linkwith the transaction processing server via the second connection,receive the transaction data from at least one of the point-of-salesystem or the printer via the first connection, parse the transactiondata and identify an element of the transaction data, generatetransaction processing data comprising the element, transmit thetransaction processing data to the transaction processing server via thesecond connection for processing by the transaction processing server,receive, from the transaction processing server, a confirmation that thetransaction processing server has processed the transaction using thetransaction processing data, and responsive to receiving theconfirmation, transmit at least one of the element or additionaltransaction data comprising an indication of the confirmation to atleast one of the point-of-sale system or the printer via the firstconnection.
 2. The smart data cable of claim 1, wherein the firstconnection is a physical connection that physically connects the smartdata cable to at least one of the point-of-sale system or the printer.3. The smart data cable of claim 1, wherein the circuitry is furtherconfigured to receive power from at least one of the point-of-salesystem or the printer using the first connection.
 4. The smart datacable of claim 1, wherein a representation of the additional transactiondata is included on a receipt printed by the printer.
 5. The smart datacable of claim 1, wherein the transaction processing server processesthe transaction also using data that the transaction processing serverreceived from a device associated with a customer associated with thetransaction.
 6. The smart data cable of claim 1, wherein a second smartdata cable comprises: a third connection that communicatively couplesthe second smart data cable to a destination device; a fourth connectionthat communicatively couples the second smart data cable to thetransaction processing server; and second circuitry within the secondsmart data cable that is coupled to the third connection and the fourthconnection, and is configured to: establish a second wirelesscommunications link with the transaction processing server via thefourth connection, receive, from the transaction processing server, theconfirmation that the transaction processing server has processed thetransaction using the transaction processing data, and responsive toreceiving the confirmation, transmit at least a portion of theadditional transaction data to the destination device via the thirdconnection.
 7. The smart data cable of claim 6, wherein the printer islocated at a first physical location and the destination device islocated at a second, different physical location.
 8. A smart data cablecomprising: a first connection that communicatively couples the smartdata cable to at least one of a source device or a first destinationdevice, wherein: the source device is configured to generate transactiondata for a transaction, and the first destination device is configuredto receive the transaction data; a second connection thatcommunicatively couples the smart data cable to a transaction processingserver; and circuitry within the smart data cable and coupled to thefirst connection and the second connection, wherein the circuitry isconfigured to: establish a wireless communications link with thetransaction processing server via the second connection, receive thetransaction data from at least one of the source device or the firstdestination device via the first connection, parse the transaction dataand identify an element of the transaction data, generate a request forpayment data, the request comprising the element, transmit the requestfor the payment data to the transaction processing server via the secondconnection for processing by the transaction processing server, receivethe payment data from the transaction processing server, generate, basedat least on the payment data, additional transaction data comprising amachine-readable code, and transmit the additional transaction data toat least one of the source device or the first destination device viathe first connection.
 9. The smart data cable of claim 8, wherein thesource device comprises a point-of-sale system and the first destinationdevice comprises a printer.
 10. The smart data cable of claim 8, whereinthe payment data comprises the machine-readable code.
 11. The smart datacable of claim 8, wherein the machine-readable code comprises a barcode.12. The smart data cable of claim 8, wherein the machine-readable codeis included on a receipt printed by the first destination device. 13.The smart data cable of claim 12, wherein the machine-readable code isconfigured to be scanned using a device associated with a customer tocomplete the transaction.
 14. The smart data cable of claim 8, whereinthe first connection is a physical connection that physically connectsthe smart data cable to at least one of the source device or the firstdestination device.
 15. The smart data cable of claim 8, wherein thecircuitry is further configured to receive power from at least one ofthe source device or the first destination device using the firstconnection.
 16. The smart data cable of claim 8, wherein a second smartdata cable comprises: a third connection that communicatively couplesthe second smart data cable to a second destination device; a fourthconnection that communicatively couples the second smart data cable tothe transaction processing server; and second circuitry within thesecond smart data cable that is coupled to the third connection and thefourth connection, and is configured to: establish a second wirelesscommunications link with the transaction processing server via thefourth connection, receive, from the transaction processing server, thepayment data, and responsive to receiving the payment data, transmit atleast a portion of the payment data to the second destination device viathe third connection.
 17. The smart data cable of claim 16, wherein thefirst destination device is located at a first physical location and thesecond destination device is located at a second, different physicallocation.
 18. A method comprising: receiving, by a first smart datacable, transaction data for a transaction from a source device via afirst connection that communicatively couples the first smart data cableto the source device; parsing, by the first smart data cable, thetransaction data to identify an element of the transaction data;generating, by the first smart data cable, a request for payment data,the request comprising the element; transmitting, by the first smartdata cable, the request to a transaction processing server via a secondconnection that communicatively couples the first smart data cable tothe transaction processing server via a first wireless communicationslink, wherein the transaction processing server processes the request toproduce the payment data, receiving, by a second smart data cable, thepayment data from the transaction processing server via a thirdconnection that communicatively couples the second smart data cable tothe transaction processing server via a second wireless communicationslink, and transmitting, by the second smart data cable, the payment datato a destination device via a fourth connection that communicativelycouples the second smart data cable to the destination device.
 19. Themethod of claim 18, wherein the source device comprises a point-of-salesystem and the destination device comprises a printer.
 20. The method ofclaim 18, wherein the source device is located at a first physicallocation and the destination device is located at a second, differentphysical location.